The Flower That Bloomed Nowhere
everblossomwiki
https://everblossom.miraheze.org/wiki/Main_Page
MediaWiki 1.40.2
first-letter
Media
Special
Talk
User
User talk
The Flower That Bloomed Nowhere
The Flower That Bloomed Nowhere talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Module
Module talk
Template:Main article
10
10
50
2016-07-02T18:04:46Z
whentheycrywiki>Kinzo
0
1 revision imported: cite web
wikitext
text/x-wiki
{{#invoke:main|main}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
a7952a0ddabebcef9371e9783f0fed2425a59187
21
2023-12-13T13:26:22Z
Systemzero
2
Created page with "{{#invoke:main|main}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:main|main}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
a7952a0ddabebcef9371e9783f0fed2425a59187
Module:Main
828
12
56
2016-07-02T18:05:52Z
whentheycrywiki>Kinzo
0
1 revision imported: cite web
Scribunto
text/plain
--[[
-- This module produces a link to a main article or articles. It implements the
-- template {{main}}.
--
-- If the module is used in category or category talk space, it produces "The
-- main article for this category is xxx". Otherwise, it produces
-- "Main article: xxx".
--]]
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments -- lazily initialise
local p = {}
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {parentOnly = true})
local pages = {}
for k, v in pairs(args) do
if type(k) == 'number' then
local display = args['label ' .. k] or args['l' .. k]
local page = display and
string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v
pages[#pages + 1] = page
end
end
if #pages == 0 and mw.title.getCurrentTitle().namespace == 0 then
return mHatnote.makeWikitextError(
'no page names specified',
'Template:Main#Errors',
args.category
)
end
local options = {
selfref = args.selfref
}
return p._main(pages, options)
end
function p._main(args, options)
-- Get the list of pages. If no first page was specified we use the current
-- page name.
local currentTitle = mw.title.getCurrentTitle()
if #args == 0 then args = {currentTitle.text} end
local firstPage = string.gsub(args[1], '|.*$', '')
-- Find the pagetype.
local pageType = mHatnote.findNamespaceId(firstPage) == 0 and 'article' or 'page'
-- Make the formatted link text
list = mHatlist.andList(args, true)
-- Build the text.
local isPlural = #args > 1
local mainForm
local curNs = currentTitle.namespace
if (curNs == 14) or (curNs == 15) then --category/talk namespaces
mainForm = isPlural and
'The main %ss for this [[Wikipedia:Categorization|category]] are %s'
or
'The main %s for this [[Wikipedia:Categorization|category]] is %s'
else
mainForm = isPlural and 'Main %ss: %s' or 'Main %s: %s'
end
local text = string.format(mainForm, pageType, list)
-- Process the options and pass the text to the _rellink function in
-- [[Module:Hatnote]].
options = options or {}
local hnOptions = {
selfref = options.selfref
}
return mHatnote._hatnote(text, hnOptions)
end
return p
517f3aa2c528cf570341bd093fd71fefd6755aca
23
2023-12-13T13:32:34Z
Systemzero
2
Created page with "--[[ -- This module produces a link to a main article or articles. It implements the -- template {{main}}. -- -- If the module is used in category or category talk space, it produces "The -- main article for this category is xxx". Otherwise, it produces -- "Main article: xxx". --]] local mHatnote = require('Module:Hatnote') local mHatlist = require('Module:Hatnote list') local mArguments -- lazily initialise local p = {} function p.main(frame) mArguments = require('M..."
Scribunto
text/plain
--[[
-- This module produces a link to a main article or articles. It implements the
-- template {{main}}.
--
-- If the module is used in category or category talk space, it produces "The
-- main article for this category is xxx". Otherwise, it produces
-- "Main article: xxx".
--]]
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments -- lazily initialise
local p = {}
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {parentOnly = true})
local pages = {}
for k, v in pairs(args) do
if type(k) == 'number' then
local display = args['label ' .. k] or args['l' .. k]
local page = display and
string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v
pages[#pages + 1] = page
end
end
if #pages == 0 and mw.title.getCurrentTitle().namespace == 0 then
return mHatnote.makeWikitextError(
'no page names specified',
'Template:Main#Errors',
args.category
)
end
local options = {
selfref = args.selfref
}
return p._main(pages, options)
end
function p._main(args, options)
-- Get the list of pages. If no first page was specified we use the current
-- page name.
local currentTitle = mw.title.getCurrentTitle()
if #args == 0 then args = {currentTitle.text} end
local firstPage = string.gsub(args[1], '|.*$', '')
-- Find the pagetype.
local pageType = mHatnote.findNamespaceId(firstPage) == 0 and 'article' or 'page'
-- Make the formatted link text
list = mHatlist.andList(args, true)
-- Build the text.
local isPlural = #args > 1
local mainForm
local curNs = currentTitle.namespace
if (curNs == 14) or (curNs == 15) then --category/talk namespaces
mainForm = isPlural and
'The main %ss for this [[Wikipedia:Categorization|category]] are %s'
or
'The main %s for this [[Wikipedia:Categorization|category]] is %s'
else
mainForm = isPlural and 'Main %ss: %s' or 'Main %s: %s'
end
local text = string.format(mainForm, pageType, list)
-- Process the options and pass the text to the _rellink function in
-- [[Module:Hatnote]].
options = options or {}
local hnOptions = {
selfref = options.selfref
}
return mHatnote._hatnote(text, hnOptions)
end
return p
517f3aa2c528cf570341bd093fd71fefd6755aca
Module:Check for unknown parameters
828
21
38
2023-04-20T16:21:41Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:wikipedia:Module:Check_for_unknown_parameters]]: nihongo update
Scribunto
text/plain
-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list
local p = {}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and s:match('%S')
end
local function clean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
local pos, truncated
local function truncate(text)
if truncated then
return ''
end
if mw.ustring.len(text) > 25 then
truncated = true
text = mw.ustring.sub(text, 1, 25) .. '...'
end
return mw.text.nowiki(text)
end
local parts = {}
for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
pos = remainder
table.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')
end
table.insert(parts, truncate(text:sub(pos or 1)))
return table.concat(parts)
end
function p._check(args, pargs)
if type(args) ~= "table" or type(pargs) ~= "table" then
-- TODO: error handling
return
end
-- create the list of known args, regular expressions, and the return string
local knownargs = {}
local regexps = {}
for k, v in pairs(args) do
if type(k) == 'number' then
v = trim(v)
knownargs[v] = 1
elseif k:find('^regexp[1-9][0-9]*$') then
table.insert(regexps, '^' .. v .. '$')
end
end
-- loop over the parent args, and make sure they are on the list
local ignoreblank = isnotempty(args['ignoreblank'])
local showblankpos = isnotempty(args['showblankpositional'])
local values = {}
for k, v in pairs(pargs) do
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
break
end
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
table.insert(values, clean(k))
end
elseif type(k) == 'number' and knownargs[tostring(k)] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(tostring(k), regexp) then
knownflag = true
break
end
end
if not knownflag and ( showblankpos or isnotempty(v) ) then
table.insert(values, k .. ' = ' .. clean(v))
end
end
end
-- add results to the output tables
local res = {}
if #values > 0 then
local unknown_text = args['unknown'] or 'Found _VALUE_, '
if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then
local preview_text = args['preview']
if isnotempty(preview_text) then
preview_text = require('Module:If preview')._warning({preview_text})
elseif preview == nil then
preview_text = unknown_text
end
unknown_text = preview_text
end
for _, v in pairs(values) do
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
if v == '' then v = ' ' end
-- avoid error with v = 'example%2' ("invalid capture index")
local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})
table.insert(res, r)
end
end
return table.concat(res)
end
function p.check(frame)
local args = frame.args
local pargs = frame:getParent().args
return p._check(args, pargs)
end
return p
93db6d115d4328d2a5148bb42959105e367b663e
39
38
2023-12-13T14:31:29Z
Systemzero
2
1 revision imported
Scribunto
text/plain
-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list
local p = {}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and s:match('%S')
end
local function clean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
local pos, truncated
local function truncate(text)
if truncated then
return ''
end
if mw.ustring.len(text) > 25 then
truncated = true
text = mw.ustring.sub(text, 1, 25) .. '...'
end
return mw.text.nowiki(text)
end
local parts = {}
for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
pos = remainder
table.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')
end
table.insert(parts, truncate(text:sub(pos or 1)))
return table.concat(parts)
end
function p._check(args, pargs)
if type(args) ~= "table" or type(pargs) ~= "table" then
-- TODO: error handling
return
end
-- create the list of known args, regular expressions, and the return string
local knownargs = {}
local regexps = {}
for k, v in pairs(args) do
if type(k) == 'number' then
v = trim(v)
knownargs[v] = 1
elseif k:find('^regexp[1-9][0-9]*$') then
table.insert(regexps, '^' .. v .. '$')
end
end
-- loop over the parent args, and make sure they are on the list
local ignoreblank = isnotempty(args['ignoreblank'])
local showblankpos = isnotempty(args['showblankpositional'])
local values = {}
for k, v in pairs(pargs) do
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
break
end
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
table.insert(values, clean(k))
end
elseif type(k) == 'number' and knownargs[tostring(k)] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(tostring(k), regexp) then
knownflag = true
break
end
end
if not knownflag and ( showblankpos or isnotempty(v) ) then
table.insert(values, k .. ' = ' .. clean(v))
end
end
end
-- add results to the output tables
local res = {}
if #values > 0 then
local unknown_text = args['unknown'] or 'Found _VALUE_, '
if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then
local preview_text = args['preview']
if isnotempty(preview_text) then
preview_text = require('Module:If preview')._warning({preview_text})
elseif preview == nil then
preview_text = unknown_text
end
unknown_text = preview_text
end
for _, v in pairs(values) do
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
if v == '' then v = ' ' end
-- avoid error with v = 'example%2' ("invalid capture index")
local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})
table.insert(res, r)
end
end
return table.concat(res)
end
function p.check(frame)
local args = frame.args
local pargs = frame:getParent().args
return p._check(args, pargs)
end
return p
93db6d115d4328d2a5148bb42959105e367b663e
Module:Format link
828
15
60
2023-04-20T16:21:45Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:wikipedia:Module:Format_link]]: nihongo update
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Format link
--
-- Makes a wikilink from the given link and display values. Links are escaped
-- with colons if necessary, and links to sections are detected and displayed
-- with " § " as a separator rather than the standard MediaWiki "#". Used in
-- the {{format link}} template.
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg
local mArguments -- lazily initialise [[Module:Arguments]]
local mError -- lazily initialise [[Module:Error]]
local yesno -- lazily initialise [[Module:Yesno]]
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
local function maybeItalicize(s, shouldItalicize)
-- Italicize s if s is a string and the shouldItalicize parameter is true.
if s and shouldItalicize then
return '<i>' .. s .. '</i>'
else
return s
end
end
local function parseLink(link)
-- Parse a link and return a table with the link's components.
-- These components are:
-- - link: the link, stripped of any initial colon (always present)
-- - page: the page name (always present)
-- - section: the page name (may be nil)
-- - display: the display text, if manually entered after a pipe (may be nil)
link = removeInitialColon(link)
-- Find whether a faux display value has been added with the {{!}} magic
-- word.
local prePipe, display = link:match('^(.-)|(.*)$')
link = prePipe or link
-- Find the page, if it exists.
-- For links like [[#Bar]], the page will be nil.
local preHash, postHash = link:match('^(.-)#(.*)$')
local page
if not preHash then
-- We have a link like [[Foo]].
page = link
elseif preHash ~= '' then
-- We have a link like [[Foo#Bar]].
page = preHash
end
-- Find the section, if it exists.
local section
if postHash and postHash ~= '' then
section = postHash
end
return {
link = link,
page = page,
section = section,
display = display,
}
end
local function formatDisplay(parsed, options)
-- Formats a display string based on a parsed link table (matching the
-- output of parseLink) and an options table (matching the input options for
-- _formatLink).
local page = maybeItalicize(parsed.page, options.italicizePage)
local section = maybeItalicize(parsed.section, options.italicizeSection)
if (not section) then
return page
elseif (not page) then
return mw.ustring.format('§ %s', section)
else
return mw.ustring.format('%s § %s', page, section)
end
end
local function missingArgError(target)
mError = require('Module:Error')
return mError.error{message =
'Error: no link or target specified! ([[' .. target .. '#Errors|help]])'
}
end
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.formatLink(frame)
-- The formatLink export function, for use in templates.
yesno = require('Module:Yesno')
local args = getArgs(frame)
local link = args[1] or args.link
local target = args[3] or args.target
if not (link or target) then
return missingArgError('Template:Format link')
end
return p._formatLink{
link = link,
display = args[2] or args.display,
target = target,
italicizePage = yesno(args.italicizepage),
italicizeSection = yesno(args.italicizesection),
categorizeMissing = args.categorizemissing
}
end
function p._formatLink(options)
-- The formatLink export function, for use in modules.
checkType('_formatLink', 1, options, 'table')
local function check(key, expectedType) --for brevity
checkTypeForNamedArg(
'_formatLink', key, options[key], expectedType or 'string', true
)
end
check('link')
check('display')
check('target')
check('italicizePage', 'boolean')
check('italicizeSection', 'boolean')
check('categorizeMissing')
-- Normalize link and target and check that at least one is present
if options.link == '' then options.link = nil end
if options.target == '' then options.target = nil end
if not (options.link or options.target) then
return missingArgError('Module:Format link')
end
local parsed = parseLink(options.link)
local display = options.display or parsed.display
local catMissing = options.categorizeMissing
local category = ''
-- Find the display text
if not display then display = formatDisplay(parsed, options) end
-- Handle the target option if present
if options.target then
local parsedTarget = parseLink(options.target)
parsed.link = parsedTarget.link
parsed.page = parsedTarget.page
end
-- Test if page exists if a diagnostic category is specified
if catMissing and (mw.ustring.len(catMissing) > 0) then
local title = nil
if parsed.page then title = mw.title.new(parsed.page) end
if title and (not title.isExternal) then
local success, exists = pcall(function() return title.exists end)
if success and not exists then
category = mw.ustring.format('[[Category:%s]]', catMissing)
end
end
end
-- Format the result as a link
if parsed.link == display then
return mw.ustring.format('[[:%s]]%s', parsed.link, category)
else
return mw.ustring.format('[[:%s|%s]]%s', parsed.link, display, category)
end
end
--------------------------------------------------------------------------------
-- Derived convenience functions
--------------------------------------------------------------------------------
function p.formatPages(options, pages)
-- Formats an array of pages using formatLink and the given options table,
-- and returns it as an array. Nil values are not allowed.
local ret = {}
for i, page in ipairs(pages) do
ret[i] = p._formatLink{
link = page,
categorizeMissing = options.categorizeMissing,
italicizePage = options.italicizePage,
italicizeSection = options.italicizeSection
}
end
return ret
end
return p
1253bdd2683ee4badc33856bfd5499b09a7dca1f
26
2023-12-13T13:43:56Z
Systemzero
2
Created page with "-------------------------------------------------------------------------------- -- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the {{format link}} template. -------------------------------------------------------------------------------- local libraryUtil = require(..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Format link
--
-- Makes a wikilink from the given link and display values. Links are escaped
-- with colons if necessary, and links to sections are detected and displayed
-- with " § " as a separator rather than the standard MediaWiki "#". Used in
-- the {{format link}} template.
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg
local mArguments -- lazily initialise [[Module:Arguments]]
local mError -- lazily initialise [[Module:Error]]
local yesno -- lazily initialise [[Module:Yesno]]
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
local function maybeItalicize(s, shouldItalicize)
-- Italicize s if s is a string and the shouldItalicize parameter is true.
if s and shouldItalicize then
return '<i>' .. s .. '</i>'
else
return s
end
end
local function parseLink(link)
-- Parse a link and return a table with the link's components.
-- These components are:
-- - link: the link, stripped of any initial colon (always present)
-- - page: the page name (always present)
-- - section: the page name (may be nil)
-- - display: the display text, if manually entered after a pipe (may be nil)
link = removeInitialColon(link)
-- Find whether a faux display value has been added with the {{!}} magic
-- word.
local prePipe, display = link:match('^(.-)|(.*)$')
link = prePipe or link
-- Find the page, if it exists.
-- For links like [[#Bar]], the page will be nil.
local preHash, postHash = link:match('^(.-)#(.*)$')
local page
if not preHash then
-- We have a link like [[Foo]].
page = link
elseif preHash ~= '' then
-- We have a link like [[Foo#Bar]].
page = preHash
end
-- Find the section, if it exists.
local section
if postHash and postHash ~= '' then
section = postHash
end
return {
link = link,
page = page,
section = section,
display = display,
}
end
local function formatDisplay(parsed, options)
-- Formats a display string based on a parsed link table (matching the
-- output of parseLink) and an options table (matching the input options for
-- _formatLink).
local page = maybeItalicize(parsed.page, options.italicizePage)
local section = maybeItalicize(parsed.section, options.italicizeSection)
if (not section) then
return page
elseif (not page) then
return mw.ustring.format('§ %s', section)
else
return mw.ustring.format('%s § %s', page, section)
end
end
local function missingArgError(target)
mError = require('Module:Error')
return mError.error{message =
'Error: no link or target specified! ([[' .. target .. '#Errors|help]])'
}
end
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.formatLink(frame)
-- The formatLink export function, for use in templates.
yesno = require('Module:Yesno')
local args = getArgs(frame)
local link = args[1] or args.link
local target = args[3] or args.target
if not (link or target) then
return missingArgError('Template:Format link')
end
return p._formatLink{
link = link,
display = args[2] or args.display,
target = target,
italicizePage = yesno(args.italicizepage),
italicizeSection = yesno(args.italicizesection),
categorizeMissing = args.categorizemissing
}
end
function p._formatLink(options)
-- The formatLink export function, for use in modules.
checkType('_formatLink', 1, options, 'table')
local function check(key, expectedType) --for brevity
checkTypeForNamedArg(
'_formatLink', key, options[key], expectedType or 'string', true
)
end
check('link')
check('display')
check('target')
check('italicizePage', 'boolean')
check('italicizeSection', 'boolean')
check('categorizeMissing')
-- Normalize link and target and check that at least one is present
if options.link == '' then options.link = nil end
if options.target == '' then options.target = nil end
if not (options.link or options.target) then
return missingArgError('Module:Format link')
end
local parsed = parseLink(options.link)
local display = options.display or parsed.display
local catMissing = options.categorizeMissing
local category = ''
-- Find the display text
if not display then display = formatDisplay(parsed, options) end
-- Handle the target option if present
if options.target then
local parsedTarget = parseLink(options.target)
parsed.link = parsedTarget.link
parsed.page = parsedTarget.page
end
-- Test if page exists if a diagnostic category is specified
if catMissing and (mw.ustring.len(catMissing) > 0) then
local title = nil
if parsed.page then title = mw.title.new(parsed.page) end
if title and (not title.isExternal) then
local success, exists = pcall(function() return title.exists end)
if success and not exists then
category = mw.ustring.format('[[Category:%s]]', catMissing)
end
end
end
-- Format the result as a link
if parsed.link == display then
return mw.ustring.format('[[:%s]]%s', parsed.link, category)
else
return mw.ustring.format('[[:%s|%s]]%s', parsed.link, display, category)
end
end
--------------------------------------------------------------------------------
-- Derived convenience functions
--------------------------------------------------------------------------------
function p.formatPages(options, pages)
-- Formats an array of pages using formatLink and the given options table,
-- and returns it as an array. Nil values are not allowed.
local ret = {}
for i, page in ipairs(pages) do
ret[i] = p._formatLink{
link = page,
categorizeMissing = options.categorizeMissing,
italicizePage = options.italicizePage,
italicizeSection = options.italicizeSection
}
end
return ret
end
return p
5c878065ff3809629376f94da43cf39a395b01b1
Module:Hatnote
828
13
52
2023-04-20T16:21:46Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:wikipedia:Module:Hatnote]]: nihongo update
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote --
-- --
-- This module produces hatnote links and links to related articles. It --
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --
-- helper functions for other Lua hatnote modules. --
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg
local mArguments -- lazily initialise [[Module:Arguments]]
local yesno -- lazily initialise [[Module:Yesno]]
local formatLink -- lazily initialise [[Module:Format link]] ._formatLink
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
function p.defaultClasses(inline)
-- Provides the default hatnote classes as a space-separated string; useful
-- for hatnote-manipulation modules like [[Module:Hatnote group]].
return
(inline == 1 and 'hatnote-inline' or 'hatnote') .. ' ' ..
'navigation-not-searchable'
end
function p.disambiguate(page, disambiguator)
-- Formats a page title with a disambiguation parenthetical,
-- i.e. "Example" → "Example (disambiguation)".
checkType('disambiguate', 1, page, 'string')
checkType('disambiguate', 2, disambiguator, 'string', true)
disambiguator = disambiguator or 'disambiguation'
return mw.ustring.format('%s (%s)', page, disambiguator)
end
function p.findNamespaceId(link, removeColon)
-- Finds the namespace id (namespace number) of a link or a pagename. This
-- function will not work if the link is enclosed in double brackets. Colons
-- are trimmed from the start of the link by default. To skip colon
-- trimming, set the removeColon parameter to false.
checkType('findNamespaceId', 1, link, 'string')
checkType('findNamespaceId', 2, removeColon, 'boolean', true)
if removeColon ~= false then
link = removeInitialColon(link)
end
local namespace = link:match('^(.-):')
if namespace then
local nsTable = mw.site.namespaces[namespace]
if nsTable then
return nsTable.id
end
end
return 0
end
function p.makeWikitextError(msg, helpLink, addTrackingCategory, title)
-- Formats an error message to be returned to wikitext. If
-- addTrackingCategory is not false after being returned from
-- [[Module:Yesno]], and if we are not on a talk page, a tracking category
-- is added.
checkType('makeWikitextError', 1, msg, 'string')
checkType('makeWikitextError', 2, helpLink, 'string', true)
yesno = require('Module:Yesno')
title = title or mw.title.getCurrentTitle()
-- Make the help link text.
local helpText
if helpLink then
helpText = ' ([[' .. helpLink .. '|help]])'
else
helpText = ''
end
-- Make the category text.
local category
if not title.isTalkPage -- Don't categorise talk pages
and title.namespace ~= 2 -- Don't categorise userspace
and yesno(addTrackingCategory) ~= false -- Allow opting out
then
category = 'Hatnote templates with errors'
category = mw.ustring.format(
'[[%s:%s]]',
mw.site.namespaces[14].name,
category
)
else
category = ''
end
return mw.ustring.format(
'<strong class="error">Error: %s%s.</strong>%s',
msg,
helpText,
category
)
end
local curNs = mw.title.getCurrentTitle().namespace
p.missingTargetCat =
--Default missing target category, exported for use in related modules
((curNs == 0) or (curNs == 14)) and
'Articles with hatnote templates targeting a nonexistent page' or nil
function p.quote(title)
--Wraps titles in quotation marks. If the title starts/ends with a quotation
--mark, kerns that side as with {{-'}}
local quotationMarks = {
["'"]=true, ['"']=true, ['“']=true, ["‘"]=true, ['”']=true, ["’"]=true
}
local quoteLeft, quoteRight = -- Test if start/end are quotation marks
quotationMarks[string.sub(title, 1, 1)],
quotationMarks[string.sub(title, -1, -1)]
if quoteLeft or quoteRight then
title = mw.html.create("span"):wikitext(title)
end
if quoteLeft then title:css("padding-left", "0.15em") end
if quoteRight then title:css("padding-right", "0.15em") end
return '"' .. tostring(title) .. '"'
end
--------------------------------------------------------------------------------
-- Hatnote
--
-- Produces standard hatnote text. Implements the {{hatnote}} template.
--------------------------------------------------------------------------------
function p.hatnote(frame)
local args = getArgs(frame)
local s = args[1]
if not s then
return p.makeWikitextError(
'no text specified',
'Template:Hatnote#Errors',
args.category
)
end
return p._hatnote(s, {
extraclasses = args.extraclasses,
selfref = args.selfref
})
end
function p._hatnote(s, options)
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 2, options, 'table', true)
options = options or {}
local inline = options.inline
local hatnote = mw.html.create(inline == 1 and 'span' or 'div')
local extraclasses
if type(options.extraclasses) == 'string' then
extraclasses = options.extraclasses
end
hatnote
:attr('role', 'note')
:addClass(p.defaultClasses(inline))
:addClass(extraclasses)
:addClass(options.selfref and 'selfref' or nil)
:wikitext(s)
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Hatnote/styles.css' }
} .. tostring(hatnote)
end
return p
3ae1ed7094c5005ca0896395ec9a587287a0bef1
24
2023-12-13T13:33:58Z
Systemzero
2
Created page with "-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the {{hatnote}} and {{format link}} meta-templates and includes -- -- helper functions for other Lua hatnote modules...."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote --
-- --
-- This module produces hatnote links and links to related articles. It --
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --
-- helper functions for other Lua hatnote modules. --
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg
local mArguments -- lazily initialise [[Module:Arguments]]
local yesno -- lazily initialise [[Module:Yesno]]
local formatLink -- lazily initialise [[Module:Format link]] ._formatLink
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
function p.defaultClasses(inline)
-- Provides the default hatnote classes as a space-separated string; useful
-- for hatnote-manipulation modules like [[Module:Hatnote group]].
return
(inline == 1 and 'hatnote-inline' or 'hatnote') .. ' ' ..
'navigation-not-searchable'
end
function p.disambiguate(page, disambiguator)
-- Formats a page title with a disambiguation parenthetical,
-- i.e. "Example" → "Example (disambiguation)".
checkType('disambiguate', 1, page, 'string')
checkType('disambiguate', 2, disambiguator, 'string', true)
disambiguator = disambiguator or 'disambiguation'
return mw.ustring.format('%s (%s)', page, disambiguator)
end
function p.findNamespaceId(link, removeColon)
-- Finds the namespace id (namespace number) of a link or a pagename. This
-- function will not work if the link is enclosed in double brackets. Colons
-- are trimmed from the start of the link by default. To skip colon
-- trimming, set the removeColon parameter to false.
checkType('findNamespaceId', 1, link, 'string')
checkType('findNamespaceId', 2, removeColon, 'boolean', true)
if removeColon ~= false then
link = removeInitialColon(link)
end
local namespace = link:match('^(.-):')
if namespace then
local nsTable = mw.site.namespaces[namespace]
if nsTable then
return nsTable.id
end
end
return 0
end
function p.makeWikitextError(msg, helpLink, addTrackingCategory, title)
-- Formats an error message to be returned to wikitext. If
-- addTrackingCategory is not false after being returned from
-- [[Module:Yesno]], and if we are not on a talk page, a tracking category
-- is added.
checkType('makeWikitextError', 1, msg, 'string')
checkType('makeWikitextError', 2, helpLink, 'string', true)
yesno = require('Module:Yesno')
title = title or mw.title.getCurrentTitle()
-- Make the help link text.
local helpText
if helpLink then
helpText = ' ([[' .. helpLink .. '|help]])'
else
helpText = ''
end
-- Make the category text.
local category
if not title.isTalkPage -- Don't categorise talk pages
and title.namespace ~= 2 -- Don't categorise userspace
and yesno(addTrackingCategory) ~= false -- Allow opting out
then
category = 'Hatnote templates with errors'
category = mw.ustring.format(
'[[%s:%s]]',
mw.site.namespaces[14].name,
category
)
else
category = ''
end
return mw.ustring.format(
'<strong class="error">Error: %s%s.</strong>%s',
msg,
helpText,
category
)
end
local curNs = mw.title.getCurrentTitle().namespace
p.missingTargetCat =
--Default missing target category, exported for use in related modules
((curNs == 0) or (curNs == 14)) and
'Articles with hatnote templates targeting a nonexistent page' or nil
function p.quote(title)
--Wraps titles in quotation marks. If the title starts/ends with a quotation
--mark, kerns that side as with {{-'}}
local quotationMarks = {
["'"]=true, ['"']=true, ['“']=true, ["‘"]=true, ['”']=true, ["’"]=true
}
local quoteLeft, quoteRight = -- Test if start/end are quotation marks
quotationMarks[string.sub(title, 1, 1)],
quotationMarks[string.sub(title, -1, -1)]
if quoteLeft or quoteRight then
title = mw.html.create("span"):wikitext(title)
end
if quoteLeft then title:css("padding-left", "0.15em") end
if quoteRight then title:css("padding-right", "0.15em") end
return '"' .. tostring(title) .. '"'
end
--------------------------------------------------------------------------------
-- Hatnote
--
-- Produces standard hatnote text. Implements the {{hatnote}} template.
--------------------------------------------------------------------------------
function p.hatnote(frame)
local args = getArgs(frame)
local s = args[1]
if not s then
return p.makeWikitextError(
'no text specified',
'Template:Hatnote#Errors',
args.category
)
end
return p._hatnote(s, {
extraclasses = args.extraclasses,
selfref = args.selfref
})
end
function p._hatnote(s, options)
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 2, options, 'table', true)
options = options or {}
local inline = options.inline
local hatnote = mw.html.create(inline == 1 and 'span' or 'div')
local extraclasses
if type(options.extraclasses) == 'string' then
extraclasses = options.extraclasses
end
hatnote
:attr('role', 'note')
:addClass(p.defaultClasses(inline))
:addClass(extraclasses)
:addClass(options.selfref and 'selfref' or nil)
:wikitext(s)
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Hatnote/styles.css' }
} .. tostring(hatnote)
end
return p
3ae1ed7094c5005ca0896395ec9a587287a0bef1
Module:Hatnote list
828
14
54
2023-04-20T16:21:47Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:wikipedia:Module:Hatnote_list]]: nihongo update
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote list --
-- --
-- This module produces and formats lists for use in hatnotes. In particular, --
-- it implements the for-see list, i.e. lists of "For X, see Y" statements, --
-- as used in {{about}}, {{redirect}}, and their variants. Also introduced --
-- are andList & orList helpers for formatting lists with those conjunctions. --
--------------------------------------------------------------------------------
local mArguments --initialize lazily
local mFormatLink = require('Module:Format link')
local mHatnote = require('Module:Hatnote')
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
--------------------------------------------------------------------------------
-- List stringification helper functions
--
-- These functions are used for stringifying lists, usually page lists inside
-- the "Y" portion of "For X, see Y" for-see items.
--------------------------------------------------------------------------------
--default options table used across the list stringification functions
local stringifyListDefaultOptions = {
conjunction = "and",
separator = ",",
altSeparator = ";",
space = " ",
formatted = false
}
--Searches display text only
local function searchDisp(haystack, needle)
return string.find(
string.sub(haystack, (string.find(haystack, '|') or 0) + 1), needle
)
end
-- Stringifies a list generically; probably shouldn't be used directly
local function stringifyList(list, options)
-- Type-checks, defaults, and a shortcut
checkType("stringifyList", 1, list, "table")
if #list == 0 then return nil end
checkType("stringifyList", 2, options, "table", true)
options = options or {}
for k, v in pairs(stringifyListDefaultOptions) do
if options[k] == nil then options[k] = v end
end
local s = options.space
-- Format the list if requested
if options.formatted then
list = mFormatLink.formatPages(
{categorizeMissing = mHatnote.missingTargetCat}, list
)
end
-- Set the separator; if any item contains it, use the alternate separator
local separator = options.separator
for k, v in pairs(list) do
if searchDisp(v, separator) then
separator = options.altSeparator
break
end
end
-- Set the conjunction, apply Oxford comma, and force a comma if #1 has "§"
local conjunction = s .. options.conjunction .. s
if #list == 2 and searchDisp(list[1], "§") or #list > 2 then
conjunction = separator .. conjunction
end
-- Return the formatted string
return mw.text.listToText(list, separator .. s, conjunction)
end
--DRY function
function p.conjList (conj, list, fmt)
return stringifyList(list, {conjunction = conj, formatted = fmt})
end
-- Stringifies lists with "and" or "or"
function p.andList (...) return p.conjList("and", ...) end
function p.orList (...) return p.conjList("or", ...) end
--------------------------------------------------------------------------------
-- For see
--
-- Makes a "For X, see [[Y]]." list from raw parameters. Intended for the
-- {{about}} and {{redirect}} templates and their variants.
--------------------------------------------------------------------------------
--default options table used across the forSee family of functions
local forSeeDefaultOptions = {
andKeyword = 'and',
title = mw.title.getCurrentTitle().text,
otherText = 'other uses',
forSeeForm = 'For %s, see %s.',
}
--Collapses duplicate punctuation
local function punctuationCollapse (text)
local replacements = {
["%.%.$"] = ".",
["%?%.$"] = "?",
["%!%.$"] = "!",
["%.%]%]%.$"] = ".]]",
["%?%]%]%.$"] = "?]]",
["%!%]%]%.$"] = "!]]"
}
for k, v in pairs(replacements) do text = string.gsub(text, k, v) end
return text
end
-- Structures arguments into a table for stringification, & options
function p.forSeeArgsToTable (args, from, options)
-- Type-checks and defaults
checkType("forSeeArgsToTable", 1, args, 'table')
checkType("forSeeArgsToTable", 2, from, 'number', true)
from = from or 1
checkType("forSeeArgsToTable", 3, options, 'table', true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- maxArg's gotten manually because getArgs() and table.maxn aren't friends
local maxArg = 0
for k, v in pairs(args) do
if type(k) == 'number' and k > maxArg then maxArg = k end
end
-- Structure the data out from the parameter list:
-- * forTable is the wrapper table, with forRow rows
-- * Rows are tables of a "use" string & a "pages" table of pagename strings
-- * Blanks are left empty for defaulting elsewhere, but can terminate list
local forTable = {}
local i = from
local terminated = false
-- If there is extra text, and no arguments are given, give nil value
-- to not produce default of "For other uses, see foo (disambiguation)"
if options.extratext and i > maxArg then return nil end
-- Loop to generate rows
repeat
-- New empty row
local forRow = {}
-- On blank use, assume list's ended & break at end of this loop
forRow.use = args[i]
if not args[i] then terminated = true end
-- New empty list of pages
forRow.pages = {}
-- Insert first pages item if present
table.insert(forRow.pages, args[i + 1])
-- If the param after next is "and", do inner loop to collect params
-- until the "and"'s stop. Blanks are ignored: "1|and||and|3" → {1, 3}
while args[i + 2] == options.andKeyword do
if args[i + 3] then
table.insert(forRow.pages, args[i + 3])
end
-- Increment to next "and"
i = i + 2
end
-- Increment to next use
i = i + 2
-- Append the row
table.insert(forTable, forRow)
until terminated or i > maxArg
return forTable
end
-- Stringifies a table as formatted by forSeeArgsToTable
function p.forSeeTableToString (forSeeTable, options)
-- Type-checks and defaults
checkType("forSeeTableToString", 1, forSeeTable, "table", true)
checkType("forSeeTableToString", 2, options, "table", true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- Stringify each for-see item into a list
local strList = {}
if forSeeTable then
for k, v in pairs(forSeeTable) do
local useStr = v.use or options.otherText
local pagesStr =
p.andList(v.pages, true) or
mFormatLink._formatLink{
categorizeMissing = mHatnote.missingTargetCat,
link = mHatnote.disambiguate(options.title)
}
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)
forSeeStr = punctuationCollapse(forSeeStr)
table.insert(strList, forSeeStr)
end
end
if options.extratext then table.insert(strList, punctuationCollapse(options.extratext..'.')) end
-- Return the concatenated list
return table.concat(strList, ' ')
end
-- Produces a "For X, see [[Y]]" string from arguments. Expects index gaps
-- but not blank/whitespace values. Ignores named args and args < "from".
function p._forSee (args, from, options)
local forSeeTable = p.forSeeArgsToTable(args, from, options)
return p.forSeeTableToString(forSeeTable, options)
end
-- As _forSee, but uses the frame.
function p.forSee (frame, from, options)
mArguments = require('Module:Arguments')
return p._forSee(mArguments.getArgs(frame), from, options)
end
return p
d0828422b1aa0d0d0092d699d059c9e882260398
25
2023-12-13T13:36:02Z
Systemzero
2
Created page with "-------------------------------------------------------------------------------- -- Module:Hatnote list -- -- -- -- This module produces and formats lists for use in hatnotes. In particular, -- -- it implements the for-see list, i.e. lists of "For X, see Y" statements, -- -- as used in {{about}}, {{redirect}}, and their variants. Also introd..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote list --
-- --
-- This module produces and formats lists for use in hatnotes. In particular, --
-- it implements the for-see list, i.e. lists of "For X, see Y" statements, --
-- as used in {{about}}, {{redirect}}, and their variants. Also introduced --
-- are andList & orList helpers for formatting lists with those conjunctions. --
--------------------------------------------------------------------------------
local mArguments --initialize lazily
local mFormatLink = require('Module:Format link')
local mHatnote = require('Module:Hatnote')
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
--------------------------------------------------------------------------------
-- List stringification helper functions
--
-- These functions are used for stringifying lists, usually page lists inside
-- the "Y" portion of "For X, see Y" for-see items.
--------------------------------------------------------------------------------
--default options table used across the list stringification functions
local stringifyListDefaultOptions = {
conjunction = "and",
separator = ",",
altSeparator = ";",
space = " ",
formatted = false
}
--Searches display text only
local function searchDisp(haystack, needle)
return string.find(
string.sub(haystack, (string.find(haystack, '|') or 0) + 1), needle
)
end
-- Stringifies a list generically; probably shouldn't be used directly
local function stringifyList(list, options)
-- Type-checks, defaults, and a shortcut
checkType("stringifyList", 1, list, "table")
if #list == 0 then return nil end
checkType("stringifyList", 2, options, "table", true)
options = options or {}
for k, v in pairs(stringifyListDefaultOptions) do
if options[k] == nil then options[k] = v end
end
local s = options.space
-- Format the list if requested
if options.formatted then
list = mFormatLink.formatPages(
{categorizeMissing = mHatnote.missingTargetCat}, list
)
end
-- Set the separator; if any item contains it, use the alternate separator
local separator = options.separator
for k, v in pairs(list) do
if searchDisp(v, separator) then
separator = options.altSeparator
break
end
end
-- Set the conjunction, apply Oxford comma, and force a comma if #1 has "§"
local conjunction = s .. options.conjunction .. s
if #list == 2 and searchDisp(list[1], "§") or #list > 2 then
conjunction = separator .. conjunction
end
-- Return the formatted string
return mw.text.listToText(list, separator .. s, conjunction)
end
--DRY function
function p.conjList (conj, list, fmt)
return stringifyList(list, {conjunction = conj, formatted = fmt})
end
-- Stringifies lists with "and" or "or"
function p.andList (...) return p.conjList("and", ...) end
function p.orList (...) return p.conjList("or", ...) end
--------------------------------------------------------------------------------
-- For see
--
-- Makes a "For X, see [[Y]]." list from raw parameters. Intended for the
-- {{about}} and {{redirect}} templates and their variants.
--------------------------------------------------------------------------------
--default options table used across the forSee family of functions
local forSeeDefaultOptions = {
andKeyword = 'and',
title = mw.title.getCurrentTitle().text,
otherText = 'other uses',
forSeeForm = 'For %s, see %s.',
}
--Collapses duplicate punctuation
local function punctuationCollapse (text)
local replacements = {
["%.%.$"] = ".",
["%?%.$"] = "?",
["%!%.$"] = "!",
["%.%]%]%.$"] = ".]]",
["%?%]%]%.$"] = "?]]",
["%!%]%]%.$"] = "!]]"
}
for k, v in pairs(replacements) do text = string.gsub(text, k, v) end
return text
end
-- Structures arguments into a table for stringification, & options
function p.forSeeArgsToTable (args, from, options)
-- Type-checks and defaults
checkType("forSeeArgsToTable", 1, args, 'table')
checkType("forSeeArgsToTable", 2, from, 'number', true)
from = from or 1
checkType("forSeeArgsToTable", 3, options, 'table', true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- maxArg's gotten manually because getArgs() and table.maxn aren't friends
local maxArg = 0
for k, v in pairs(args) do
if type(k) == 'number' and k > maxArg then maxArg = k end
end
-- Structure the data out from the parameter list:
-- * forTable is the wrapper table, with forRow rows
-- * Rows are tables of a "use" string & a "pages" table of pagename strings
-- * Blanks are left empty for defaulting elsewhere, but can terminate list
local forTable = {}
local i = from
local terminated = false
-- If there is extra text, and no arguments are given, give nil value
-- to not produce default of "For other uses, see foo (disambiguation)"
if options.extratext and i > maxArg then return nil end
-- Loop to generate rows
repeat
-- New empty row
local forRow = {}
-- On blank use, assume list's ended & break at end of this loop
forRow.use = args[i]
if not args[i] then terminated = true end
-- New empty list of pages
forRow.pages = {}
-- Insert first pages item if present
table.insert(forRow.pages, args[i + 1])
-- If the param after next is "and", do inner loop to collect params
-- until the "and"'s stop. Blanks are ignored: "1|and||and|3" → {1, 3}
while args[i + 2] == options.andKeyword do
if args[i + 3] then
table.insert(forRow.pages, args[i + 3])
end
-- Increment to next "and"
i = i + 2
end
-- Increment to next use
i = i + 2
-- Append the row
table.insert(forTable, forRow)
until terminated or i > maxArg
return forTable
end
-- Stringifies a table as formatted by forSeeArgsToTable
function p.forSeeTableToString (forSeeTable, options)
-- Type-checks and defaults
checkType("forSeeTableToString", 1, forSeeTable, "table", true)
checkType("forSeeTableToString", 2, options, "table", true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- Stringify each for-see item into a list
local strList = {}
if forSeeTable then
for k, v in pairs(forSeeTable) do
local useStr = v.use or options.otherText
local pagesStr =
p.andList(v.pages, true) or
mFormatLink._formatLink{
categorizeMissing = mHatnote.missingTargetCat,
link = mHatnote.disambiguate(options.title)
}
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)
forSeeStr = punctuationCollapse(forSeeStr)
table.insert(strList, forSeeStr)
end
end
if options.extratext then table.insert(strList, punctuationCollapse(options.extratext..'.')) end
-- Return the concatenated list
return table.concat(strList, ' ')
end
-- Produces a "For X, see [[Y]]" string from arguments. Expects index gaps
-- but not blank/whitespace values. Ignores named args and args < "from".
function p._forSee (args, from, options)
local forSeeTable = p.forSeeArgsToTable(args, from, options)
return p.forSeeTableToString(forSeeTable, options)
end
-- As _forSee, but uses the frame.
function p.forSee (frame, from, options)
mArguments = require('Module:Arguments')
return p._forSee(mArguments.getArgs(frame), from, options)
end
return p
d0828422b1aa0d0d0092d699d059c9e882260398
Module:Hatnote/styles.css
828
27
58
2023-04-20T16:21:47Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:wikipedia:Module:Hatnote/styles.css]]: nihongo update
text
text/plain
/* {{pp|small=y}} */
.hatnote {
font-style: italic;
}
/* Limit structure CSS to divs because of [[Module:Hatnote inline]] */
div.hatnote {
/* @noflip */
padding-left: 1.6em;
margin-bottom: 0.5em;
}
.hatnote i {
font-style: normal;
}
/* The templatestyles element inserts a link element before hatnotes.
* TODO: Remove link if/when WMF resolves T200206 */
.hatnote + link + .hatnote {
margin-top: -0.5em;
}
44680ffd6e888866df2cdfa0341af9c7b97da94c
Template:Main other
10
20
36
2023-09-01T00:06:15Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:wikipedia:Template:Main_other]]: w
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
86ad907ffeea3cc545159e00cd1f2d6433946450
37
36
2023-12-13T14:31:28Z
Systemzero
2
1 revision imported
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
86ad907ffeea3cc545159e00cd1f2d6433946450
Template:Reflist
10
18
32
2023-09-03T00:11:17Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:wikipedia:Template:Reflist]]
wikitext
text/x-wiki
<templatestyles src="Reflist/styles.css" /><div class="reflist <!--
-->{{#if:{{{1|}}}{{{colwidth|}}}|reflist-columns references-column-width}} <!--
-->{{#switch:{{{liststyle|{{{group|}}}}}}|upper-alpha|upper-roman|lower-alpha|lower-greek|lower-roman=reflist-{{{liststyle|{{{group}}}}}}}} <!--
-->{{#if:{{{1|}}}|{{#iferror:{{#ifexpr: {{{1|1}}} > 1 }}||{{#switch:{{{1|}}}|1=|2=reflist-columns-2|#default=reflist-columns-3}} }}}}" <!-- end class
-->{{#if: {{{1|}}}<!-- start style -->
| {{#iferror: {{#ifexpr: {{{1|1}}} > 1 }} |style="column-width: {{{1}}};"}}
| {{#if: {{{colwidth|}}}|style="column-width: {{{colwidth}}};"}}
}}>
{{#tag:references|{{{refs|}}}|group={{{group|}}}|responsive={{#if:{{{1|}}}{{{colwidth|}}}|0|1}}}}</div>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using reflist with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Reflist]] with unknown parameter "_VALUE_"|ignoreblank=y| 1 | colwidth | group | liststyle | refs }}<noinclude>
{{Documentation}}
</noinclude>
8c65cc88272db6c0f5cf2b49f84d3e460e60ee5f
30
2023-12-13T13:57:47Z
Systemzero
2
Created page with "<templatestyles src="Reflist/styles.css" /><div class="reflist <!-- -->{{#if:{{{1|}}}{{{colwidth|}}}|reflist-columns references-column-width}} <!-- -->{{#switch:{{{liststyle|{{{group|}}}}}}|upper-alpha|upper-roman|lower-alpha|lower-greek|lower-roman=reflist-{{{liststyle|{{{group}}}}}}}} <!-- -->{{#if:{{{1|}}}|{{#iferror:{{#ifexpr: {{{1|1}}} > 1 }}||{{#switch:{{{1|}}}|1=|2=reflist-columns-2|#default=reflist-columns-3}} }}}}" <!-- end class -->{{#if: {{{1|}}}<!-- start sty..."
wikitext
text/x-wiki
<templatestyles src="Reflist/styles.css" /><div class="reflist <!--
-->{{#if:{{{1|}}}{{{colwidth|}}}|reflist-columns references-column-width}} <!--
-->{{#switch:{{{liststyle|{{{group|}}}}}}|upper-alpha|upper-roman|lower-alpha|lower-greek|lower-roman=reflist-{{{liststyle|{{{group}}}}}}}} <!--
-->{{#if:{{{1|}}}|{{#iferror:{{#ifexpr: {{{1|1}}} > 1 }}||{{#switch:{{{1|}}}|1=|2=reflist-columns-2|#default=reflist-columns-3}} }}}}" <!-- end class
-->{{#if: {{{1|}}}<!-- start style -->
| {{#iferror: {{#ifexpr: {{{1|1}}} > 1 }} |style="column-width: {{{1}}};"}}
| {{#if: {{{colwidth|}}}|style="column-width: {{{colwidth}}};"}}
}}>
{{#tag:references|{{{refs|}}}|group={{{group|}}}|responsive={{#if:{{{1|}}}{{{colwidth|}}}|0|1}}}}</div>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using reflist with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Reflist]] with unknown parameter "_VALUE_"|ignoreblank=y| 1 | colwidth | group | liststyle | refs }}<noinclude>
{{Documentation}}
</noinclude>
8c65cc88272db6c0f5cf2b49f84d3e460e60ee5f
33
30
2023-12-13T14:31:27Z
Systemzero
2
1 revision imported
wikitext
text/x-wiki
<templatestyles src="Reflist/styles.css" /><div class="reflist <!--
-->{{#if:{{{1|}}}{{{colwidth|}}}|reflist-columns references-column-width}} <!--
-->{{#switch:{{{liststyle|{{{group|}}}}}}|upper-alpha|upper-roman|lower-alpha|lower-greek|lower-roman=reflist-{{{liststyle|{{{group}}}}}}}} <!--
-->{{#if:{{{1|}}}|{{#iferror:{{#ifexpr: {{{1|1}}} > 1 }}||{{#switch:{{{1|}}}|1=|2=reflist-columns-2|#default=reflist-columns-3}} }}}}" <!-- end class
-->{{#if: {{{1|}}}<!-- start style -->
| {{#iferror: {{#ifexpr: {{{1|1}}} > 1 }} |style="column-width: {{{1}}};"}}
| {{#if: {{{colwidth|}}}|style="column-width: {{{colwidth}}};"}}
}}>
{{#tag:references|{{{refs|}}}|group={{{group|}}}|responsive={{#if:{{{1|}}}{{{colwidth|}}}|0|1}}}}</div>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using reflist with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Reflist]] with unknown parameter "_VALUE_"|ignoreblank=y| 1 | colwidth | group | liststyle | refs }}<noinclude>
{{Documentation}}
</noinclude>
8c65cc88272db6c0f5cf2b49f84d3e460e60ee5f
Template:Reflist/styles.css
10
26
48
2023-09-03T00:11:20Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:wikipedia:Template:Reflist/styles.css]]
text
text/plain
/* {{pp|small=yes}} */
/* can we remove the font size declarations? .references gets a font-size in
* common.css that is always 90, and there is nothing else in reflist out in
* the wild. May affect column sizes.
*/
.reflist {
font-size: 90%; /* Default font-size */
margin-bottom: 0.5em;
list-style-type: decimal;
}
.reflist .references {
font-size: 100%; /* Reset font-size when nested in div.reflist */
margin-bottom: 0; /* Avoid double margin when nested in div.reflist */
list-style-type: inherit; /* Enable custom list style types */
}
/* columns-2 and columns-3 are legacy for "2 or more" column view from when the
* template was implemented with column-count.
*/
.reflist-columns-2 {
column-width: 30em;
}
.reflist-columns-3 {
column-width: 25em;
}
/* Reset top margin for lists embedded in columns */
.reflist-columns {
margin-top: 0.3em;
}
.reflist-columns ol {
margin-top: 0;
}
/* Avoid elements breaking between columns */
.reflist-columns li {
page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */
break-inside: avoid-column;
}
.reflist-upper-alpha {
list-style-type: upper-alpha;
}
.reflist-upper-roman {
list-style-type: upper-roman;
}
.reflist-lower-alpha {
list-style-type: lower-alpha;
}
.reflist-lower-greek {
list-style-type: lower-greek;
}
.reflist-lower-roman {
list-style-type: lower-roman;
}
531a26d48f0e7826c61f764cfb7d5fb200032c34
Module:Arguments
828
16
34
2023-11-30T20:54:22Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:mw:Module:Arguments]]: w
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
27
2023-12-13T13:45:46Z
Systemzero
2
Created page with "-- This module provides easy processing of arguments passed to Scribunto from -- #invoke. It is intended for use by other Lua modules, and should not be -- called from #invoke directly. local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local arguments = {} -- Generate four different tidyVal functions, so that we don't have to check the -- options every time we call it. local function tidyValDefault(key, val) if type(val) == 'string'..."
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
35
27
2023-12-13T14:31:28Z
Systemzero
2
1 revision imported
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
Template:Documentation
10
22
40
2023-11-30T20:54:23Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:mw:Template:Documentation]]: w
wikitext
text/x-wiki
<noinclude>
<languages/>
</noinclude><includeonly>{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}</includeonly><noinclude>
{{documentation|content=
{{Lua|Module:Documentation}}
<translate><!--T:12--> This template automatically displays a documentation box like the one you are seeing now, of which the content is sometimes transcluded from another page.</translate>
<translate><!--T:13--> It is intended for pages which are [[<tvar name=1>Special:MyLanguage/Help:Transclusion</tvar>|transcluded]] in other pages, i.e. templates, whether in the template namespace or not.</translate>
<translate>
==Usage== <!--T:2-->
===Customising display=== <!--T:3-->
<!--T:4-->
Overrides exist to customise the output in special cases:
</translate>
* <nowiki>{{</nowiki>documentation{{!}}'''heading'''=<nowiki>}}</nowiki> - <translate><!--T:5--> change the text of the "documentation" heading.</translate> <translate><!--T:10--> If this is set to blank, the entire heading line (including the first [edit] link) will also disappear.</translate>
<translate>
==Rationale== <!--T:6-->
</translate>
<translate><!--T:7--> This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template's documentation and categories.</translate>
<translate><!--T:8--> It also reduces server resources by circumventing a [[w:Wikipedia:Template limits|technical limitation of templates]] (see a [[<tvar name=1>:en:Special:Diff/69888944</tvar>|developer's explanation]]).</translate>
<translate>
==See also== <!--T:9-->
</translate>
* <translate><!--T:14--> [[w:Template:Documentation subpage]]</translate>
* {{tim|Documentation}}
* <translate><!--T:11--> [[w:Wikipedia:Template documentation]]</translate>
}}
[[Category:Formatting templates{{#translation:}}|Template documentation]]
[[Category:Template documentation{{#translation:}}| ]]
</noinclude><includeonly>{{#if:{{{content|}}}|
[[Category:Template documentation pages{{#translation:}}]]
}}</includeonly>
c1ef6cbf9cb4c65ddd087c09aa6affb00dc5bfad
41
40
2023-12-13T14:31:29Z
Systemzero
2
1 revision imported
wikitext
text/x-wiki
<noinclude>
<languages/>
</noinclude><includeonly>{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}</includeonly><noinclude>
{{documentation|content=
{{Lua|Module:Documentation}}
<translate><!--T:12--> This template automatically displays a documentation box like the one you are seeing now, of which the content is sometimes transcluded from another page.</translate>
<translate><!--T:13--> It is intended for pages which are [[<tvar name=1>Special:MyLanguage/Help:Transclusion</tvar>|transcluded]] in other pages, i.e. templates, whether in the template namespace or not.</translate>
<translate>
==Usage== <!--T:2-->
===Customising display=== <!--T:3-->
<!--T:4-->
Overrides exist to customise the output in special cases:
</translate>
* <nowiki>{{</nowiki>documentation{{!}}'''heading'''=<nowiki>}}</nowiki> - <translate><!--T:5--> change the text of the "documentation" heading.</translate> <translate><!--T:10--> If this is set to blank, the entire heading line (including the first [edit] link) will also disappear.</translate>
<translate>
==Rationale== <!--T:6-->
</translate>
<translate><!--T:7--> This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template's documentation and categories.</translate>
<translate><!--T:8--> It also reduces server resources by circumventing a [[w:Wikipedia:Template limits|technical limitation of templates]] (see a [[<tvar name=1>:en:Special:Diff/69888944</tvar>|developer's explanation]]).</translate>
<translate>
==See also== <!--T:9-->
</translate>
* <translate><!--T:14--> [[w:Template:Documentation subpage]]</translate>
* {{tim|Documentation}}
* <translate><!--T:11--> [[w:Wikipedia:Template documentation]]</translate>
}}
[[Category:Formatting templates{{#translation:}}|Template documentation]]
[[Category:Template documentation{{#translation:}}| ]]
</noinclude><includeonly>{{#if:{{{content|}}}|
[[Category:Template documentation pages{{#translation:}}]]
}}</includeonly>
c1ef6cbf9cb4c65ddd087c09aa6affb00dc5bfad
Module:Documentation
828
23
42
2023-11-30T20:54:25Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:mw:Module:Documentation]]: w
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
local format = mw.ustring.format
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return format('[[%s|%s]]', page, display)
else
return format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return format(
'<span class="%s">(%s)</span>',
message('toolbar-class'),
table.concat(ret, ' | ')
)
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p._getModuleWikitext(args, env))
:wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.canonicalUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------
p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext')
function p._getModuleWikitext(args, env)
local currentTitle = mw.title.getCurrentTitle()
if currentTitle.contentModel ~= 'Scribunto' then return end
pcall(require, currentTitle.prefixedText) -- if it fails, we don't care
local moduleWikitext = package.loaded["Module:Module wikitext"]
if moduleWikitext then
return moduleWikitext.main()
end
end
function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --> '[[File:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --> 'sandbox page'
-- 'sandbox-notice-compare-link-display' --> 'diff'
-- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --> 'test cases'
-- 'sandbox-category' --> 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle
and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text".
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- "This is the template sandbox for [[Template:Foo]] (diff)."
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- "See also the companion subpage for [[Template:Foo/testcases|test cases]]."
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.contentModel == "Scribunto" then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
omargs.text = text .. makeCategoryLink(message('sandbox-category'))
-- 'documentation-clear'
return '<div class="' .. message('clear') .. '"></div>'
.. require('Module:Message box').main('ombox', omargs)
end
function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --> 'pp-template'
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
return require('Module:Protection banner')._main{
message('protection-reason-edit'), small = true
}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level "autoconfirmed", as this is equivalent to
-- no move protection at all.
return require('Module:Protection banner')._main{
action = 'move', small = true
}
else
return nil
end
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
return {
title = title,
docTitle = docTitle,
-- View, display, edit, and purge links if /doc exists.
viewLinkDisplay = message('view-link-display'),
editLinkDisplay = message('edit-link-display'),
historyLinkDisplay = message('history-link-display'),
purgeLinkDisplay = message('purge-link-display'),
preload = preload,
createLinkDisplay = message('create-link-display')
}
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local docTitle = data.docTitle
-- yes, we do intend to purge the template page on which the documentation appears
local purgeLink = makeWikilink("Special:Purge/" .. data.title.prefixedText, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, data.editLinkDisplay)
local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, data.historyLinkDisplay)
return "[" .. viewLink .. "] [" .. editLink .. "] [" .. historyLink .. "] [" .. purgeLink .. "]"
else
local createLink = makeUrlLink(docTitle:canonicalUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
return "[" .. createLink .. "] [" .. purgeLink .. "]"
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editDisplay = message('edit-link-display')
local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, editDisplay)
local historyDisplay = message('history-link-display')
local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:canonicalUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeWikilink("Special:EditPage/" .. sandboxPage, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:canonicalUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeWikilink("Special:EditPage/" .. testcasesPage, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:canonicalUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
268dc89480af10873bfbca5439ae8e61b404f770
Module:Documentation/config
828
24
44
2023-11-30T20:54:25Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:mw:Module:Documentation/config]]: w
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[File:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page'
cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page'
cfg['sandbox-notice-pagetype-other'] = 'sandbox page'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.'
cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'diff'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.'
cfg['sandbox-notice-testcases-link-display'] = 'test cases'
cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'run'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Template sandboxes'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
71b68ed73088f1a59d61acf06bbee9fde6677f03
Module:Documentation/styles.css
828
25
46
2023-11-30T20:54:27Z
whentheycrywiki>Kinzo
0
1 revision imported from [[:mw:Module:Documentation/styles.css]]: w
text
text/plain
/* {{pp|small=yes}} */
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
ce0e629c92e3d825ab9fd927fe6cc37d9117b6cb
Main Page
0
1
1
2023-12-12T22:08:10Z
MediaWiki default
1
Create main page
wikitext
text/x-wiki
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
21236ac3f8d65e5563b6da6b70815ca6bf1e6616
12
1
2023-12-13T04:26:42Z
Systemzero
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to {{SITENAME}}! ==
This wiki is about [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere The Flower That Bloomed Nowhere], a webnovel by Lurina.<br>
This wiki contains [[Special:Statistics|{{NUMBEROFARTICLES}}]] [[Special:AllPages|articles]].
3b4c6f06f4061797de915f0a8d1c9ca27746ffb5
Iron
0
2
2
2023-12-13T02:03:52Z
Systemzero
2
Created page with "'''Iron''' is a substance that with few exceptions, does not exist within the [[Remaining World]]."
wikitext
text/x-wiki
'''Iron''' is a substance that with few exceptions, does not exist within the [[Remaining World]].
ffb34b15846a5d8deee6155665c4d8889fa0c185
4
2
2023-12-13T03:32:21Z
Systemzero
2
wikitext
text/x-wiki
'''Iron''' is a substance that does not exist within the [[Remaining World]] except within the human body.
== Properties ==
When properly pressured and charged, iron has the ability influence and transcend other planes.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image 026: In Fading Image (𒐁)]</ref>
== History ==
Humans first began to use iron at the beginning of the [[New Kingdoms]] era.
After the [[Collapse|collapse]], the [[Ironworkers]] were able to create a [[Tower of Asphodel|cross-planar edifice of iron]] that exists independently of four-dimensional reality. This edifice became the substrate for the planes of the [[Remaining World]]. As a consequence, true iron cannot exist outside of this edifice.
Since human beings contain iron, the Ironworkers decided to use replicas of preserved bodies within the Tower of Asphodel in order for conventional human bodies to continue to exist. The limited number of bodies preserved is the cause of [[Contact Paradox|contact paradoxes]].
== False iron ==
Most of iron's uses are substituted with simulated false iron, taken from the Tower of Asphodel as it exists in mundane reality.
All false iron is temporarily transformed into true iron so long as it stays within the human body.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/648360/038-profane-ambition 038: Profane Ambition (𒐅)]</ref> If it leaves the body, it will revert to false iron.
By acting as a conduit to the Tower of Asphodel, individuals can train themselves to send their neural impulses through tower. This makes [[Logic Bridge|logic bridge]] communication possible.
==References==
{{reflist}}
075bf70019fcbed36692b32372a5dcd884e5ebd5
5
4
2023-12-13T03:34:08Z
Systemzero
2
wikitext
text/x-wiki
'''Iron''' is a substance that does not exist within the [[Remaining World]] except within the human body.
== Properties ==
When properly pressured and charged, iron has the ability to influence and transcend other planes.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image 026: In Fading Image (𒐁)]</ref>
== History ==
Humans first began to use iron at the beginning of the [[New Kingdoms]] era.
After the [[Collapse|collapse]], the [[Ironworkers]] were able to create a [[Tower of Asphodel|cross-planar edifice of iron]] that exists independently of four-dimensional reality. This edifice became the substrate for the planes of the [[Remaining World]]. As a consequence, true iron cannot exist outside of this edifice.
Since human beings contain iron, the Ironworkers decided to use replicas of preserved bodies within the Tower of Asphodel in order for conventional human bodies to continue to exist. The limited number of bodies preserved is the cause of [[Contact Paradox|contact paradoxes]].
== False iron ==
Most of iron's uses are substituted with simulated false iron, taken from the Tower of Asphodel as it exists in mundane reality.
All false iron is temporarily transformed into true iron so long as it stays within the human body.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/648360/038-profane-ambition 038: Profane Ambition (𒐅)]</ref> If it leaves the body, it will revert to false iron.
By acting as a conduit to the Tower of Asphodel, individuals can train themselves to send their neural impulses through tower. This makes [[Logic Bridge|logic bridge]] communication possible.
==References==
{{reflist}}
c2dd126471b7df4bd88faa4146a34cb915386f0b
Tower of Asphodel
0
3
3
2023-12-13T02:15:04Z
Systemzero
2
Created page with "The Tower of Asphodel is a structure created by the [[Ironworkers]] as a substrate for the [[Remaining World]]."
wikitext
text/x-wiki
The Tower of Asphodel is a structure created by the [[Ironworkers]] as a substrate for the [[Remaining World]].
87e041f8f3047d5aced3aaebf7041604fe37e486
Logic Bridge
0
4
6
2023-12-13T03:36:19Z
Systemzero
2
Created page with "An interfacing tool used to connect the human mind to either other minds or objects via exercising the iron of the pneumaic nexus, and its connection to the Tower of Asphodel. In its most basic form, it consists of a piece of False [[Iron]], a switch, and two polarized magnets. Can be used directly to facilitate awkward pseudo-telepathy, but a logic engine is required for translating more complex concepts.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloo..."
wikitext
text/x-wiki
An interfacing tool used to connect the human mind to either other minds or objects via exercising the iron of the pneumaic nexus, and its connection to the Tower of Asphodel. In its most basic form, it consists of a piece of False [[Iron]], a switch, and two polarized magnets. Can be used directly to facilitate awkward pseudo-telepathy, but a logic engine is required for translating more complex concepts.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary Glossary]</ref>
==References==
{{reflist}}
6098b2c3da80ba9681368f54f0ce5da02930939d
7
6
2023-12-13T03:37:31Z
Systemzero
2
wikitext
text/x-wiki
An interfacing tool used to connect the human mind to either other minds or objects via exercising the [[Iron|iron]] of the [[pneumaic nexus]], and its connection to the [[Tower of Asphodel]]. In its most basic form, it consists of a piece of False Iron, a switch, and two polarized magnets. Can be used directly to facilitate awkward pseudo-telepathy, but a [[logic engine]] is required for translating more complex concepts.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary Glossary]</ref>
==References==
{{reflist}}
5390dfb557346824587092f9bfb44d23ad1b2996
8
7
2023-12-13T03:38:13Z
Systemzero
2
wikitext
text/x-wiki
A '''logic bridge''' is an interfacing tool used to connect the human mind to either other minds or objects via exercising the [[Iron|iron]] of the [[pneumaic nexus]], and its connection to the [[Tower of Asphodel]]. In its most basic form, it consists of a piece of False Iron, a switch, and two polarized magnets. Can be used directly to facilitate awkward pseudo-telepathy, but a [[logic engine]] is required for translating more complex concepts.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary Glossary]</ref>
==References==
{{reflist}}
0edbd57218bf4caa41341d273e8e4bcf23c7c58a
9
8
2023-12-13T03:39:21Z
Systemzero
2
wikitext
text/x-wiki
A '''logic bridge''' is an interfacing tool used to connect the human mind to either other minds or objects via exercising the [[Iron|iron]] of the [[pneumaic nexus]], and its connection to the [[Tower of Asphodel]]. In its most basic form, it consists of a piece of False Iron, a switch, and two polarized magnets. Can be used directly to facilitate awkward pseudo-telepathy, but a [[Logic Engine|logic engine]] is required for translating more complex concepts.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary Glossary]</ref>
==References==
{{reflist}}
f72caa5e518f0b658480d3bbc7c6354554393781
Logic Engine
0
5
10
2023-12-13T03:44:03Z
Systemzero
2
Created page with "A '''logic engine''' is a machine used to perform reasoning.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary Glossary]</ref> Most, but not all, interface with humans via [[Logic Bridge|logic bridges]]. Though logic engines can take many forms, the most common is the oscillatory logic engine, which utilizes microvibrations and extremely delicate machinery to store and process information, along with hydraulic power both..."
wikitext
text/x-wiki
A '''logic engine''' is a machine used to perform reasoning.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary Glossary]</ref> Most, but not all, interface with humans via [[Logic Bridge|logic bridges]]. Though logic engines can take many forms, the most common is the oscillatory logic engine, which utilizes microvibrations and extremely delicate machinery to store and process information, along with hydraulic power both to maintain its core tone and physically operate. Though much slower than minds and the [[Iron|iron]]-based logic engines of old, they are capable of incredible feats of parallel processing, rendering them able to perform mathematics and analysis beyond the scope of human ability.
=== Echo Maze ===
Properly called an Echo Labyrinth. A cube which stores information in its incredibly fine internal indentures. When sound passes through it, a logic engine can process the output as extremely specific information. The most common form of data storage in the present day by far.
==References==
{{reflist}}
58a3036b80f591106b2ed13b6510959d50fc5f67
Collapse
0
6
11
2023-12-13T03:50:34Z
Systemzero
2
Created page with "Shorthand for 'false vacuum collapse', a phenomenon of astrophysics where a lower minimum of energy in the vacuum is suddenly achieved, causing destabilization at a subatomic level which spreads at the speed of light until equilibrium is once again reached.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary Glossary]</ref> Sometimes called 'decay' instead. Such an event was largely responsible for ending the Imperial Er..."
wikitext
text/x-wiki
Shorthand for 'false vacuum collapse', a phenomenon of astrophysics where a lower minimum of energy in the vacuum is suddenly achieved, causing destabilization at a subatomic level which spreads at the speed of light until equilibrium is once again reached.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary Glossary]</ref> Sometimes called 'decay' instead. Such an event was largely responsible for ending the [[Imperial Era]] and almost destroying human civilization, though there were also socioeconomic factors which radically impeded the response.
==References==
{{reflist}}
7b87468a8cdf60a181c1ed585d4befe6824c3a18
MediaWiki:Sidebar
8
7
13
2023-12-13T05:05:05Z
Systemzero
2
Created page with " * navigation ** mainpage|mainpage-description ** recentchanges-url|recentchanges ** randompage-url|randompage * The Flower That Bloomed Nowhere ** Characters ** Glossary * SEARCH * TOOLBOX * LANGUAGES"
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
* The Flower That Bloomed Nowhere
** Characters
** Glossary
* SEARCH
* TOOLBOX
* LANGUAGES
2c642095997e127a3822e84b2a046614a0b08013
15
13
2023-12-13T05:36:10Z
Systemzero
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
* The Flower That Bloomed Nowhere
** List of characters in The Flower That Bloomed Nowhere|Characters
** Glossary
* SEARCH
* TOOLBOX
* LANGUAGES
611f047b1b3f6fb9e9b1ef0c80841da94e51d825
17
15
2023-12-13T05:45:17Z
Systemzero
2
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
* The Flower That Bloomed Nowhere
** List of characters in The Flower That Bloomed Nowhere|Characters
** Glossary|Glossary
* SEARCH
* TOOLBOX
* LANGUAGES
3e48389b9a097c9640f3b295eebd61da47a2c67d
List of characters in The Flower That Bloomed Nowhere
0
8
14
2023-12-13T05:32:04Z
Systemzero
2
Created page with "== Exemplary Acolytes Class == * [[Utsushikome of Fusai]] * [[Ran of Hoa-Trinh]] * [[Kamrusepa of Tuon]] * [[Theodoros of Melanthos]] * [[Ptolema of Rheeds]] * [[Seth of Ikkuret]] * [[Ophelia of the Glass Fields]] * [[Lilith of Eskhalon]] * [[Bardiya of Tuon]] * [[Ezekiel of Ilaadbat]] * [[Jia Fang]] == Order of the Universal Panacea == * [[⬛️⬛️⬛️⬛️⬛️ of Fusai]] * [[Linos of Melanthos]] * [[Neferuaten of Amat]] * [[Durvasa of Wayal]] * Zeno of Apoc..."
wikitext
text/x-wiki
== Exemplary Acolytes Class ==
* [[Utsushikome of Fusai]]
* [[Ran of Hoa-Trinh]]
* [[Kamrusepa of Tuon]]
* [[Theodoros of Melanthos]]
* [[Ptolema of Rheeds]]
* [[Seth of Ikkuret]]
* [[Ophelia of the Glass Fields]]
* [[Lilith of Eskhalon]]
* [[Bardiya of Tuon]]
* [[Ezekiel of Ilaadbat]]
* [[Jia Fang]]
== Order of the Universal Panacea ==
* [[⬛️⬛️⬛️⬛️⬛️ of Fusai]]
* [[Linos of Melanthos]]
* [[Neferuaten of Amat]]
* [[Durvasa of Wayal]]
* [[Zeno of Apocyrion]]
* [[Amtu-Heddu-Anna]]
* [[Hamilcar of Kane]]
* [[Sac'Nicte'Ic'Nal]]
* [[Yantho'Ic'Thal]]
== Guests ==
* [[Mehit of Eskhalon]]
* [[Balthazar of Isan]]
* [[Samium of Ur-Ysar]]
b284b24b83bd61661902ef1aff6e15e4532f5ce5
18
14
2023-12-13T06:21:23Z
Spinachstealer
4
wikitext
text/x-wiki
== Exemplary Acolytes Class ==
* [[Utsushikome of Fusai]]
* [[Ran of Hoa-Trinh]]
* [[Kamrusepa of Tuon]]
* [[Theodoros of Melanthos]]
* [[Ptolema of Rheeds]]
* [[Seth of Ikkuret]]
* [[Ophelia of the Glass Fields]]
* [[Lilith of Eskhalon]]
* [[Bardiya of Tuon]]
* [[Ezekiel of Ilaadbat]]
* [[Jia Fang]]
== Order of the Universal Panacea ==
* [[Linos of Melanthos]]
* [[Neferuaten of Amat]]
* [[Durvasa of Wayal]]
* [[Zeno of Apocyrion]]
* [[Amtu-Heddu-Anna]]
* [[Hamilcar of Kane]]
* [[Sac'Nicte'Ic'Nal]]
* [[Yantho'Ic'Thal]]
* [[Vijana of Yamune]]
== Guests ==
* [[Mehit of Eskhalon]]
* [[Balthazar of Isan]]
* [[Samium of Ur-Ysar]]
== Non-attendees ==
* [[⬛️⬛️⬛️⬛️⬛️ of Fusai]]
* [[Nindar of Inadu]]
dbfd5f1358c96af8c857af94a0f9123cde0593eb
19
18
2023-12-13T06:29:59Z
Spinachstealer
4
wikitext
text/x-wiki
== Exemplary Acolytes Class ==
* [[Utsushikome of Fusai]]
* [[Ran of Hoa-Trinh]]
* [[Kamrusepa of Tuon]]
* [[Theodoros of Melanthos]]
* [[Ptolema of Rheeds]]
* [[Seth of Ikkuret]]
* [[Ophelia of the Glass Fields]]
* [[Lilith of Eskhalon]]
* [[Bardiya of Tuon]]
* [[Ezekiel of Ilaadbat]]
* [[Jia Fang]]
== Order of the Universal Panacea ==
* [[Linos of Melanthos]]
* [[Neferuaten of Amat]]
* [[Durvasa of Wayal]]
* [[Zeno of Apocyrion]]
* [[Amtu-Heddu-Anna]]
* [[Hamilcar of Kane]]
* [[Sac'Nicte'Ic'Nal]]
* [[Yantho'Ic'Thal]]
* [[Vijana of Yamune]]
== Guests ==
* [[Mehit of Eskhalon]]
* [[Balthazar of Isan]]
* [[Samium of Ur-Ysar]]
== Non-attendees ==
* [[⬛️⬛️⬛️⬛️⬛️ of Fusai]]
* [[Nindar of Inadu]]
* [[Jothi of Somrang]]
7fcf74303166ad006e80b40e9193d0fbd04016cf
20
19
2023-12-13T06:34:51Z
Spinachstealer
4
/* Non-attendees */
wikitext
text/x-wiki
== Exemplary Acolytes Class ==
* [[Utsushikome of Fusai]]
* [[Ran of Hoa-Trinh]]
* [[Kamrusepa of Tuon]]
* [[Theodoros of Melanthos]]
* [[Ptolema of Rheeds]]
* [[Seth of Ikkuret]]
* [[Ophelia of the Glass Fields]]
* [[Lilith of Eskhalon]]
* [[Bardiya of Tuon]]
* [[Ezekiel of Ilaadbat]]
* [[Jia Fang]]
== Order of the Universal Panacea ==
* [[Linos of Melanthos]]
* [[Neferuaten of Amat]]
* [[Durvasa of Wayal]]
* [[Zeno of Apocyrion]]
* [[Amtu-Heddu-Anna]]
* [[Hamilcar of Kane]]
* [[Sac'Nicte'Ic'Nal]]
* [[Yantho'Ic'Thal]]
* [[Vijana of Yamune]]
== Guests ==
* [[Mehit of Eskhalon]]
* [[Balthazar of Isan]]
* [[Samium of Ur-Ysar]]
== Non-attendees ==
* [[⬛️⬛️⬛️⬛️⬛️ of Fusai]]
* [[Nindar of Inadu]]
* [[Jothi of Somrang]]
* [[Autonoe of Koranthia]]
4a41f616fde407ded7f659ccab66b3da8fc7086a
Glossary
0
9
16
2023-12-13T05:44:30Z
Systemzero
2
Created page with "''Thank you for reading. If you are struggling to keep up with some of the language used in this narrative, then this glossary may be of some assistance to you. Though certain terms will be excluded until they become pertinent for the purposes of dramatic tension, please note that this may spoil some light setting-related exposition which will be revealed later.'' ---- '''Arcana''': A power created as a tool by the Ironworkers to assist in rebuilding the world. Somet..."
wikitext
text/x-wiki
''Thank you for reading. If you are struggling to keep up with some of the language used in this narrative, then this glossary may be of some assistance to you. Though certain terms will be excluded until they become pertinent for the purposes of dramatic tension, please note that this may spoil some light setting-related exposition which will be revealed later.''
----
'''Arcana''': A power created as a tool by the Ironworkers to assist in rebuilding the world. Sometimes referred to simply as the Power. Due to its complexity, practitioners (called 'arcanists') are separated into numerous disciplines, which are in turn divided into schools, though it should be noted that these categories are social constructs with no inherent value. The most pertinent:
///''Aetheromancy'': The study of utilizing arcana to manipulate space.
///''Alchemy'': The study of utilizing arcana to create novel elements and substances, traditionally in medicine.
///''Anima Scripting'': The study of utilizing arcana to manipulate the anima script, a biopolymer which determines the development of organisms. Because the subject of the discipline is proto-life rather than life outright, it is technically not a school of Biomancy, though this is the subject of some dispute within the academic community.
///''Biomancy'': The study of utilizing arcana to manipulate biology.
///''Chronomancy'': The study of utilizing arcana to manipulate time.
///''Divination'': The study of utilizing arcana to assess information and predict events.
///''Egomancy'': The study of utilizing arcana to alter the pneumaic nexus, the seat of human conciousness. Banned everywhere, save for the realms of the Uana. Archaically called Pneumancy.
///''Geomancy'': The study of utilizing arcana to manipulate earth, the landscape, and most broadly the climate.
///''Golemancy'': The study of utilizing arcana to create machines.
///''Metamancy'': The study of using the Power to manipulate itself. A precursor to Egomancy, which itself was a precursor to Neuromancy.
///''Neuromancy'': The study of utilizing arcana to manipulate the nervous system. Considered outside of Inotia and Ysara to be a mere school of Biomancy.
///''Pyromancy'': The study of utilizing arcana to create manipulate and generate energy directly, often for destructive purposes.
///''Radiamancy'': The study of using the Power to manipulate light.
///''Runescripting'': Not technically a discipline, though often treated as such. The study of engraving incantations, as runes, into various objects.
///''Thanatomancy'': The study of utilizing arcana to manipulate the process of death, or dead tissue. Archaically known as Necromancy.
///''Transmutation'': The study of utilizing arcana to change the nature of objects or matter. Most commonly used for replication.
'''Artifice''': An object or machine that requires the Power to function; for example, an arcane light. Can also be employed as a verb ('artificed') to refer to things merely created by the Power but not dependent upon it, such as construction materials and life brought about by Biomancy.
'''Assimilation Failure''': A rare side-effect of Induction with an unclear cause. Rather than discarding the memories stored within the affixed Pneuma, the mind instead fixates on or even centers them, beginning to transfer them to the conventional brain. In most cases, this has relatively minor effects, but occasionally can result in alterations to or even replacement of the sufferer's identity. The subject is taboo, with arcanists sworn to secrecy regarding it.
///''Acclimation Therapy'': A well-tested treatment program designed to minimize or even erase the effects of Assimilation Failure using a combination of medication, thought exercises, behavioral adjustments, and ultimately electrotherapy. Almost always successful to some extent if approached in good faith, though controversy exists regarding when it transitions to being little more than brainwashing.
///''Witch'': Slang term among arcanists for extreme sufferers of the condition, who fully conceive of themselves as people other than their original, physical selves. Almost all such individuals conceal this information, even from their loved ones. It's said to date from the Mourning Period, when the ailment was poorly understood. Newly-inducted arcanists appeared to simply go mad, using their new powers for wreak chaos and renouncing their former friends and family as if possessed by devils.
'''Civil Dispute''': Often called the Ikkaryonic Revolution by the young. A civil conflict within the Grand Alliance that arose based on a decision by its Old Yru Convention to treat the Ikkaryon Provisional Government, who seized the city after the rulers horrifically mismanaged it during an outbreak of disease and subsequent famine, as a criminal enemy of the state and violators of the Covenant. It ultimately led to the most serious armed conflict in 200 years, involving most of the nations of the Elysian Pangaea, before finally being brought to the end by the Summer Compromise of 1388, which granted amnesty and concessions to the rebels and their allies.
'''Collapse''': Shorthand for 'false vacuum collapse', a phenomenon of astrophysics where a lower minimum of energy in the vacuum is suddenly achieved, causing destabilization at a subatomic level which spreads at the speed of light until equilibrium is once again reached. Sometimes called 'decay' instead. Such an event was largely responsible for ending the Imperial Era and almost destroying human civilization, though there were also socioeconomic factors which radically impeded the response.
'''Covenant''': Officially the "Covenant of the Mourning Realms". A set of oaths sworn upon by 6 of the Parties of survivors following the creation of the Mimikos, designed to create a civilization that is sustainable in the long term in the new circumstances of humanity. Though largely considered unquestionable by the political mainstream, the interpretation of its tenants have become the subject of conflict, with broadly three schools of thought.
///''Fundamentalist'': The belief that the tenants of the Covenant are absolute, and must be taken literally. After centuries of ideological dominance, its hegemony has been fractured in the aftermath of the Civil Dispute.
///''Interpretist'': The belief that the tenants of the Covenant should be interpreted more liberally in accordance with the spirit in which they were written, often under the guidance of a secondary, longer document written by the Covenant's authors known as the Proclamation of Mankind's Future. An ascendant ideology.
///''Reformist'': The belief that the tenants of the Covenant are flawed due to a lack of foresight by the authors and must be amended or abolished outright. Considered an extremist ideology, although relatively popular among the young.
'''Covenant Schism''': A disagreement on the specifics of some of the Covenant's tenants between two Parties, the Lluatec and the Uana, and the other six. The result was that they did not settle the Mimikos, and follow a significantly different, and much briefer, version of the Covenant. Attempts have been made to mend this divide for centuries, with limited success.
'''Dementia''': Shorthand for associative collapse-type dementia. A degenerative mental condition that is increasingly likely to occur in those older than 500, and especially 600 years. It is currently believed to be untreatable. With the exception of accidents, it is the most common cause of death in the civilized world.
'''Duumvirate''': Shorthand for the Lluatec-Uana Duumvirate. A loose federation that oversees most of the states established by the Lluatec and Uana Parties, placing it in vague opposition to the Grand Alliance, though no hostilities have ever occurred. It dominates the Empyrean almost completely.
'''Era''': A popular means of separating human history, based on broad trends in governmental development and the scope of human artifice. Scholars generally observe five distinct eras.
///''Primeval'': The age between the earliest human settlements and the advent of complex societal organization and subsequent consolidation of power that would come to be defined as civilization. Comprised of small, relatively isolated communities.
///''Old Kingdoms'': The earliest age of civilization, characterized by local centralization the beginnings of specialized labor, but limited trade and simple government still concentrated in fertile regions.
///''New Kingdoms'': The first age conceived of as culturally sophisticated, characterized by much greater centralization and high levels of specialization, trade, and complex bureaucratic government. Civilization has now spread across the world, but remains fractious.
///''Imperial'': The apex of civilization before the collapse of the old world, characterized by a smaller number of extremely complex and deeply interconnected states which largely no longer required human labor to function. The only era in which settlements beyond the Earth were constructed.
///''Covenant/Mourning'': The contemporary era, for which disagreement on the name exists.
'''Empyrean''': The area of space both physically and extra-planarly above the Mimikos, largely unused by the Ironworkers. It is home to a variety of experimental structures, many of which are habitable by humans, though to varying degrees of hospitality.
'''Epoch''': An alternative means of categorizing broad ages of history from a more anthropological perspective, based on the dominant 'tool' utilized by human beings. Divided into four - Bone, Fire, Iron, and Arcane.
'''Exodus, The''': The event wherein the eight Parties, following their awakening from their slumber within the Tower of Asphodel, were incarnated into either the Mimikos of the Empyrean.
'''Generation''': An informal label given to individuals based on the century of their birth that has become a socially acceptable way to inquire as to someones approximate age. In the contemporary social climate, the 14th and 13th generations are considered young, the 12th and 11th mature, and the 10th and beyond elderly. This excludes the most recent generation, the 15th, of whom the eldest are only 9 years old.
'''Grand Alliance''': Shorthand for the Grand Alliance of the Mourning Realms. A single pan-national government under which the nations of the Mimikos united following the virtual elimination of scarcity and the period of universal good relations and heightened diplomatic spirit that marked the end of the Interplanar Colonization Period. Governed by the Old Yru Convention, a council of elected leaders, bureaucrats and heads of state.
'''Great Lamp''': An artificial sun created by the Ironworkers to service the Mimikos. It crosses the sky each day by means of a giant mechanical edifice, with an angle that changes depending on the season.
'''Great Work''': A term dating back to ancient alchemy with a vague and often contextually-dependent meaning, but classically in reference to the pursuit of immortality or great scholarly achievements in service of that goal. In some traditions, the Great Work is also a spiritual transformation; the evolution of the self, or man's collective self, into a higher order of being.
'''Incantation''': The words used to invoke a certain effect using the Power. Largely mathematical in nature, they are spoken in Eme, an ancient relative of modern Ysaran that has almost nothing in common with the contemporary language. They require extremely precise pronunciation and mathematics, or will fail - sometimes with spectacular consequences.
'''Index''': The source of the Power. An extra-dimensional machine grafted to a Pneuma, allowing it to physically interact with the Higher Planes, moving energy and matter in manners that transcend the mundane. Each Index is unique, and there are a finite number (1,073,741,824) corresponding to different 'routes' by which the Higher Planes can be accessed, often possessing their own subtle traits which affect the casting of their bearer. If fire was the tool by which man began his dominance of nature, then an Index can be considered the terminus of that long quest; all that separates him from divine power is mastery.
'''Induction''': Sometimes called an 'Initiation Ceremony.' A process which is required for a person to use the Power in the overwhelming majority of circumstances due to the trauma caused to the Pneuma as a result of the severance process designed by the Ironworkers. One of the immeasurable number of Pneuma stored within the Tower of Asphodel from those not fortunate enough to find direct shelter is affixed to the damaged root, allowing the subject to bear an Index. As the Pneuma is not a thing of flesh and blood, this addition is normally ignored by rest of the brain, the information within discarded and overwritten like a fleeting dream.
'''Iron''': A substance of incredible power that was harnessed in the New Kingdoms Era, and became the backbone of civilization, enabling the impossible glories of the Imperial Era. As it was used to construct the Tower of Asphodel and preserve reality, it can no longer truly exist in the material world, in much the same way that a box cannot contain itself. However, there are some minor exceptions.
///False Iron: A shadow, or perhaps a simulacrum of iron, taken from the Tower of Asphodel as it exists in mundane reality. It is found underground in veins all over the Mimikos and the Lower Planes, and its connection to the Tower can never truly be severed.
///True Iron: Found only within the bodies of human beings in tiny quantities as a matter of necessity. It is the product of a stable paradox. It becomes False Iron when it leaves the body, and vice-versa.
'''Ironworkers''': The scholars who labored to rebuild reality while the Parties slept within the Tower of Asphodel. Masters of its use from the Imperial Era, they were still limited in their success, and only able to approximate the nature of the plane from inference and incomplete records.
'''Logic Bridge''': An interfacing tool used to connect the human mind to either other minds or objects via exercising the iron of the pneumaic nexus, and its connection to the Tower of Asphodel. In its most basic form, it consists of a piece of False Iron, a switch, and two polarized magnets. Can be used directly to facilitate awkward pseudo-telepathy, but a logic engine is required for translating more complex concepts.
'''Logic Engine''': A machine used to perform reasoning. Most, but not all, interface with humans via logic bridges. Though logic engines can take many forms, the most common is the oscillatory logic engine, which utilizes microvibrations and extremely delicate machinery to store and process information, along with hydraulic power both to maintain its core tone and physically operate. Though much slower than minds and the iron-based logic engines of old, they are capable of incredible feats of parallel processing, rendering them able to perform mathematics and analysis beyond the scope of human ability.
///''Echo Maze'': Properly called an Echo Labyrinth. A cube which stores information in its incredibly fine internal indentures. When sound passes through it, a logic engine can process the output as extremely specific information. The most common form of data storage in the present day by far.
'''Luxury Debt''': A concept that has replaced currency since the advent of mass-duplication arcana destroyed the viability of a scarcity and labor-driven economy. Everyone receives trivially produced goods for free, but to procure something that is either abstract or cannot be duplicated and requires human labor, they must go into debt with the community. This must then be repaid either by community service, or producing something else of value to pass on the debt. Class disparity still exists, however, as it remains possible to amass disproportionate amounts of non-monetary resources for oneself or a company.
'''Mimikos, The''': The final attempt of the Ironworkers to create a satisfactory replacement for the old world, and the home of the vast majority of living humans. It informally refers to both the structure itself, and the plane in which it was constructed. It is shaped like a giant, incredibly thick bowl, and derives its gravity from a combination of mass, horizontal, and vertical movement. It has three major landmasses.
///''Elysian Pangaea, The'': A massive, vaguely crescent-shaped continent that comprises over 80% of the surface landmass. The coasts of the ocean within the crescent, the Mnemonic Sea, are the center of international civilization.
///''Inotian Archipelago'': A large group of islands upon which the Inotian Party mainly settled. Though they comprise only around 1% of the land in the world, they are densely populated.
///''Orphaned Continent, The'': A continent in the far north, famed for being relatively untamed.
'''Party''': One of the eight groups that successfully took refuge within the Tower of Aspodel during the collapse of Imperial Era civilization. Each represents a distinct ethnic and cultural group. Some have 'legitimate' governments that can trace their leadership back to the Exodus, while others are the subject of more complicated divisions. The eight Parties are: The Ysaran, Inotian, Mekhian, Saoic, Rhunbardic, Viraaki, Lluateci, and Uana.
///''Ysaran'': Considered the most politically influential party in the Grand Alliance, it originally settled the coasts of the Mnemonic Sea before splintering almost immediately due to a lack of clear leadership. Today, it is largely reunified under the Ysaran Accord, a democratic federation of nations, though the culturally distinct Asharomi cities and the nation of Ikkaryon remain separate. Its people generally have strong features and light-to-medium brown complexions, with a minority having darker brown. Ysaran (specifically, Towerward Ysaran) serves as the de-facto lingua franca of the modern world. They are famed for their grand architecture and their traditions of runework and Golemancy, with Ysaran mathematicians said to be the greatest in the world, though the Uana would disagree.
///''Inotian'': Inversely, considered the most culturally influential party due to its history of seafaring and colonization. Though the most direct continuity of its pre-collapse government founded the Republic of Irenca on the Orphaned Continent, the majority of the party splintered to instead erect city-states on the islands of what is today called the Inotian Archipelago. Its people generally have very strong features and brassy complexions, with a minority being paler. They have a well-established scholarly tradition, with Inotian successfully outcome Mekhian as the language of science, and possess a particular bent towards philosophy. The greatest Diviners in the world, the Sibyls, are Inotian, though they are also responsible for the less prestigious discipline of Metamancy.
///''Mekhian'': Historically non-interventionist yet arguably the most powerful party in an explicit, military-industrial sense, the Mekhians are the only group to have experienced no meaningful political fractures since the settling of the Mimikos. Their state, though heavily federated, consists of the entirety of the non-expatriate and non-expatriate descended population and spans almost the entire civilized east. Its people generally have medium to dark brown complexions and soft features. They also have a strong scholarly tradition, but with a more pragmatic character, and excel at civic management. During the Mourning Period, it was the global center of all arcane research, and its signature disciplines are Geomancy and Thanatomancy.
///''Saoic'': Descended from a group of cultures which developed in partial isolation from the other Covenant signatories in the old world, the Saoic party settled the west of the continent, and today is divided into the Saoic Arcanoncracy, a bureaucratic dictatorship that is the last in the world governed by arcanists, and the much more liberal Dai League, comprised of various small nations with unique cultures. Its people have amber-to-pale complexions and very soft features. More than any other, Saoic culture has deeply internalized its grief for the old world, having an often solemn and mournful character that shuns excess. Despite this, its artistic and literary traditions are the most influential in the world. Ironically considering the government of the Arcanocracy, its accomplishments are more in conventional technology than arcana - though it is responsible for the artificing tradition of Alchemy and the obscure discipline of Radiamancy.
///''Rhunbardic'': A warlike party which settled the plateau and steppes in the center of the continent, with the exception of the exile-realms of Umbrica and Turaggoth on the Orphaned Continent. Once, the Rhunbardic Empire ruled half of the Mourning Realms, but it was defeated at the climax of the Tricenturial War and became the much smaller Rhunbardic Kingdom, the last remaining monarchy (albeit a constitutional one) in the world. Its people have pale or sometimes very pale complexions, and features that vary from soft to mixed. Almost every aspect of Rhunbardic culture is militant - cities resemble fortresses, and roles for individuals are often strict and pre-defined. In terms of the Power, it is most known for its Pyromancy, though the much more esoteric tradition of Chronomancy is also found here.
///''Viraaki'': A party that is widely considered a late-bloomer, having been weak and politically irrelevant for almost a millenia since it settled the jungles and mountains of the south, but now rapidly increasing its influence. Its political structure is unusual, with its disunited realms swearing technical fealty to its capital city-state, Sacred Vir, despite it holding very little practical power. By far the most powerful of these realms is the Exarchate of Palaat, a young nation that has grown rapidly since its founding during the Rhunbardic occupation. Its people have medium to dark brown complexions, but a very wide range of features. It is extremely famed for its Biomancy, which it even incorporates into architecture, and has begun to challenge Inotia and Sao for their cultural and artistic influence.
///''Lluateci'': One of the two Duumvirate parties based in the Empyrean, they rejected the Covenant of the Mourning Realms and chose to settle smaller structures built by the Ironworkers to avoid open conflict, before ultimately consolidating into the six nations that exist today. They generally have soft features and medium to dark red-tinted complexions. Lluateci culture is hyper-liberal to the point that it can appear almost anarchic to outsiders, with tolerance for practices that would be outrageous elsewhere. Their signature discipline is Transmutation, a necessity for surviving in the void of space, though they are also known for their Arcane Engineering.
///''Uana'': The second of the two Duumvirate parties based in the Empyrean, though in their case they remained mostly unified. A isolationist culture, the Uana scorn their bodies and the physical reality of the Mimikos as much as possible, choosing instead to interact through logic bridges; a device of their invention. Superficially, their structures appear utterly mercenary - little more than floating blocks of concrete with incredibly basic living quarters. Yet those few who have visited them describe their society within the artificed space as being an attempt to emulate the old world to a greater degree of fidelity than anywhere else. They are masters of Aetheromancy, and it is said they can bend space almost as well as the Iron Princes of the old world.
'''Period''': A series of sub-classifications for periods of history within the current, post-Imperial era.
///''Mourning Period'': A time of low-population and great cultural grief for the old world, dominated by the survivors of the event, when civilization was briefly much more primitive than prior ages, mankind not yet having mastered the Power as a replacement for iron.
///''First Resurrection'': A renaissance characterized by a return to urban, centralized society and a resurgence in academic study, especially concerning arcana, resulting in the return of various amenities thought no longer possible without iron. A fleeting return of Imperial Era culture also occurs.
///''Interluminary Strife'': A brief but calamitous period brought on by damage to the Great Lamp, depriving the world of sunlight.
///''Hollow Years'': A dark age of slow recovery from the mass deaths of the previous period.
///''Second Resurrection'': A renewed renaissance, though with a more culturally conservative character, characterized by the emergence of Covenant fundamentalism. This is considered to be the earliest era that remains in living memory outside of the anomalistically elderly.
///''Tricenturial War'': A lengthy period of intermittent warfare between the Rhunbardic Empire and everyone else. Not actually three centuries long, despite the name.
///''Planar Colonization Period'': A period of interest in cross-planar colonization and settlement, as well as interaction (and, ultimately, tension and conflict) with the native inhabitants.
///''Unending Peace, The'': The contemporary age following the creation of the Grand Alliance.
'''Plane''': An area of dimensionally and ruleset-consistent reality. Though the term theoretically applies to the millions of possible facets of the dimensional landscape in the universe, the more common use is in reference to the planes of the Tower of Asphodel, which all attempt at approximating the nature of mankind's long-gone original reality. A phrase often used to describe the latter in totality is the Remaining World.
'''Pneuma''': An informal shorthand for the aspect of human brain which operates extradimensionally, a phenomena discovered at the end of the Imperial Era. Though originally arising entirely as a byproduct of biology,iIn the modern day, the process by which the Pneuma is intergrated with the mind must be facilitated artificially with an engineered organ known as the Pneumaic Nexus, and new ones pruned to prevent them from reconnecting with those belonging to their Seed.
'''Political Affiliation''': Following the end of scarcity and the creation of the Grand Alliance, old political ideologies based around its management became inapplicable, becoming replaced by new variants focused on how society should encourage and reward participation and distribute political power. Often paired with the attitudes to the covenant listed above. For example, the political platform of the Grand Alliance is Humanist-Fundamentalist.
///''Humanism'': The belief that the state should serve every human need it can accommodate without substantial cost unconditionally (generally considered to include unlimited food of reasonable quality, clothes, basic housing and entertainment, education, and essential medical care) but that beyond that internal disparity is acceptable and that luxury and political power should be afforded only as rewards for communal participation, defined broadly as the creation or facilitation of luxuries, or the fulfillment of the essential needs of the state. Considered by its advocates to be the only value system that properly reflects the tenants of the Covenant.
///''Meritism'': The belief that the state should be obligated to provide only the barest essentials for human survival, and that all else must be earned either through either service to the community or personal entrepreneurship. It is conceptually rooted in the idea that human beings only thrive when forced into self-sufficiency, and that to offer too much for nothing, even when abundance permits it, fosters decadence. Many, however, accuse its advocates of more selfish motivations.
///''Paritism'': The belief that the state should offer the people unconditional equality in the distribution of resources, regardless of contribution or personal background. Extremely popular among the young, who have suffered the brunt of widening generational inequality, but considered fringe outside of the global east.
///''Idealism'': Sometimes defined as a subset of Meritism. The belief that the state should reward people neither universally nor on the basis of contribution, but rather by their degree of compliance with a set of national values or "ideals", usually moral in nature, but also often tied up in nationalism and religion. Extremists of this ideology are considered politically toxic and referred to as Iconists.
'''Prosognostic Event/Contact Paradox''': Two potential results of individuals born from the same seed from the Tower of Asphodel coming into contact with one another. The former, caused by merely witnessing a face that matches own self-conception, leads to severe seizure-like symptoms, but this is merely a defense mechanism against the latter. If the individuals touch, the iron in both of their bodies and the surrounding area is obliterated by a temporal paradox, causing the death of both and any bystanders within a few meters.
'''Refractor Rifle''': A type of firearm which propels pure light energy through a series of filters which can be lowered at the discretion of the user to varying results, ranging from stunning organic targets (though not entirely safely) to melting anything up to and including metal and stone. Developed during the Great Interplanar War, it is beginning to show its age as technology, with armors capable of deflecting its shots at even the most potent settings supposedly in development. Many wait with baited breath for the next leap in non-arcane weapons technology.
'''Seed''': The source body, stored within the Tower of Asphodel, from which a person is derived on a cellular level. They are derived from the original members of each of the eight Parties, coming to a total of around 100,000 in aggregate.
'''Tower of Asphodel''': The structure created by the Ironworkers at the end of the Imperial Era to provide refuge to those who could obtain it, and later to act as a foundation for the planes they would create. It is visible in the sky at all times, though it exists only partially as a physical object.
f061f86aec67121c26b54cc081e00e9b163168f6
29
16
2023-12-13T13:56:34Z
Systemzero
2
Attempted to add links for main articles
wikitext
text/x-wiki
''Thank you for reading. If you are struggling to keep up with some of the language used in this narrative, then this glossary may be of some assistance to you. Though certain terms will be excluded until they become pertinent for the purposes of dramatic tension, please note that this may spoil some light setting-related exposition which will be revealed later.''
----
'''Arcana'''<br>
A power created as a tool by the Ironworkers to assist in rebuilding the world. Sometimes referred to simply as the Power. Due to its complexity, practitioners (called 'arcanists') are separated into numerous disciplines, which are in turn divided into schools, though it should be noted that these categories are social constructs with no inherent value. The most pertinent:
///''Aetheromancy'': The study of utilizing arcana to manipulate space.
///''Alchemy'': The study of utilizing arcana to create novel elements and substances, traditionally in medicine.
///''Anima Scripting'': The study of utilizing arcana to manipulate the anima script, a biopolymer which determines the development of organisms. Because the subject of the discipline is proto-life rather than life outright, it is technically not a school of Biomancy, though this is the subject of some dispute within the academic community.
///''Biomancy'': The study of utilizing arcana to manipulate biology.
///''Chronomancy'': The study of utilizing arcana to manipulate time.
///''Divination'': The study of utilizing arcana to assess information and predict events.
///''Egomancy'': The study of utilizing arcana to alter the pneumaic nexus, the seat of human conciousness. Banned everywhere, save for the realms of the Uana. Archaically called Pneumancy.
///''Geomancy'': The study of utilizing arcana to manipulate earth, the landscape, and most broadly the climate.
///''Golemancy'': The study of utilizing arcana to create machines.
///''Metamancy'': The study of using the Power to manipulate itself. A precursor to Egomancy, which itself was a precursor to Neuromancy.
///''Neuromancy'': The study of utilizing arcana to manipulate the nervous system. Considered outside of Inotia and Ysara to be a mere school of Biomancy.
///''Pyromancy'': The study of utilizing arcana to create manipulate and generate energy directly, often for destructive purposes.
///''Radiamancy'': The study of using the Power to manipulate light.
///''Runescripting'': Not technically a discipline, though often treated as such. The study of engraving incantations, as runes, into various objects.
///''Thanatomancy'': The study of utilizing arcana to manipulate the process of death, or dead tissue. Archaically known as Necromancy.
///''Transmutation'': The study of utilizing arcana to change the nature of objects or matter. Most commonly used for replication.
'''Artifice'''<br>
An object or machine that requires the Power to function; for example, an arcane light. Can also be employed as a verb ('artificed') to refer to things merely created by the Power but not dependent upon it, such as construction materials and life brought about by Biomancy.
'''Assimilation Failure'''<br>
A rare side-effect of Induction with an unclear cause. Rather than discarding the memories stored within the affixed Pneuma, the mind instead fixates on or even centers them, beginning to transfer them to the conventional brain. In most cases, this has relatively minor effects, but occasionally can result in alterations to or even replacement of the sufferer's identity. The subject is taboo, with arcanists sworn to secrecy regarding it.
///''Acclimation Therapy'': A well-tested treatment program designed to minimize or even erase the effects of Assimilation Failure using a combination of medication, thought exercises, behavioral adjustments, and ultimately electrotherapy. Almost always successful to some extent if approached in good faith, though controversy exists regarding when it transitions to being little more than brainwashing.
///''Witch'': Slang term among arcanists for extreme sufferers of the condition, who fully conceive of themselves as people other than their original, physical selves. Almost all such individuals conceal this information, even from their loved ones. It's said to date from the Mourning Period, when the ailment was poorly understood. Newly-inducted arcanists appeared to simply go mad, using their new powers for wreak chaos and renouncing their former friends and family as if possessed by devils.
'''Civil Dispute'''<br>
Often called the Ikkaryonic Revolution by the young. A civil conflict within the Grand Alliance that arose based on a decision by its Old Yru Convention to treat the Ikkaryon Provisional Government, who seized the city after the rulers horrifically mismanaged it during an outbreak of disease and subsequent famine, as a criminal enemy of the state and violators of the Covenant. It ultimately led to the most serious armed conflict in 200 years, involving most of the nations of the Elysian Pangaea, before finally being brought to the end by the Summer Compromise of 1388, which granted amnesty and concessions to the rebels and their allies.
'''Collapse'''<br>
Shorthand for 'false vacuum collapse', a phenomenon of astrophysics where a lower minimum of energy in the vacuum is suddenly achieved, causing destabilization at a subatomic level which spreads at the speed of light until equilibrium is once again reached. Sometimes called 'decay' instead. Such an event was largely responsible for ending the Imperial Era and almost destroying human civilization, though there were also socioeconomic factors which radically impeded the response.
'''Covenant'''<br>
Officially the "Covenant of the Mourning Realms". A set of oaths sworn upon by 6 of the Parties of survivors following the creation of the Mimikos, designed to create a civilization that is sustainable in the long term in the new circumstances of humanity. Though largely considered unquestionable by the political mainstream, the interpretation of its tenants have become the subject of conflict, with broadly three schools of thought.
///''Fundamentalist'': The belief that the tenants of the Covenant are absolute, and must be taken literally. After centuries of ideological dominance, its hegemony has been fractured in the aftermath of the Civil Dispute.
///''Interpretist'': The belief that the tenants of the Covenant should be interpreted more liberally in accordance with the spirit in which they were written, often under the guidance of a secondary, longer document written by the Covenant's authors known as the Proclamation of Mankind's Future. An ascendant ideology.
///''Reformist'': The belief that the tenants of the Covenant are flawed due to a lack of foresight by the authors and must be amended or abolished outright. Considered an extremist ideology, although relatively popular among the young.
'''Covenant Schism'''<br>
A disagreement on the specifics of some of the Covenant's tenants between two Parties, the Lluatec and the Uana, and the other six. The result was that they did not settle the Mimikos, and follow a significantly different, and much briefer, version of the Covenant. Attempts have been made to mend this divide for centuries, with limited success.
'''Dementia'''<br>
Shorthand for associative collapse-type dementia. A degenerative mental condition that is increasingly likely to occur in those older than 500, and especially 600 years. It is currently believed to be untreatable. With the exception of accidents, it is the most common cause of death in the civilized world.
'''Duumvirate'''<br>
Shorthand for the Lluatec-Uana Duumvirate. A loose federation that oversees most of the states established by the Lluatec and Uana Parties, placing it in vague opposition to the Grand Alliance, though no hostilities have ever occurred. It dominates the Empyrean almost completely.
'''Era'''<br>
A popular means of separating human history, based on broad trends in governmental development and the scope of human artifice. Scholars generally observe five distinct eras.
///''Primeval'': The age between the earliest human settlements and the advent of complex societal organization and subsequent consolidation of power that would come to be defined as civilization. Comprised of small, relatively isolated communities.
///''Old Kingdoms'': The earliest age of civilization, characterized by local centralization the beginnings of specialized labor, but limited trade and simple government still concentrated in fertile regions.
///''New Kingdoms'': The first age conceived of as culturally sophisticated, characterized by much greater centralization and high levels of specialization, trade, and complex bureaucratic government. Civilization has now spread across the world, but remains fractious.
///''Imperial'': The apex of civilization before the collapse of the old world, characterized by a smaller number of extremely complex and deeply interconnected states which largely no longer required human labor to function. The only era in which settlements beyond the Earth were constructed.
///''Covenant/Mourning'': The contemporary era, for which disagreement on the name exists.
'''Empyrean'''<br>
The area of space both physically and extra-planarly above the Mimikos, largely unused by the Ironworkers. It is home to a variety of experimental structures, many of which are habitable by humans, though to varying degrees of hospitality.
'''Epoch''' <br>
An alternative means of categorizing broad ages of history from a more anthropological perspective, based on the dominant 'tool' utilized by human beings. Divided into four - Bone, Fire, Iron, and Arcane.
'''Exodus, The'''<br>
The event wherein the eight Parties, following their awakening from their slumber within the Tower of Asphodel, were incarnated into either the Mimikos of the Empyrean.
'''Generation'''<br>
An informal label given to individuals based on the century of their birth that has become a socially acceptable way to inquire as to someones approximate age. In the contemporary social climate, the 14th and 13th generations are considered young, the 12th and 11th mature, and the 10th and beyond elderly. This excludes the most recent generation, the 15th, of whom the eldest are only 9 years old.
'''Grand Alliance'''<br>
Shorthand for the Grand Alliance of the Mourning Realms. A single pan-national government under which the nations of the Mimikos united following the virtual elimination of scarcity and the period of universal good relations and heightened diplomatic spirit that marked the end of the Interplanar Colonization Period. Governed by the Old Yru Convention, a council of elected leaders, bureaucrats and heads of state.
'''Great Lamp'''<br>
An artificial sun created by the Ironworkers to service the Mimikos. It crosses the sky each day by means of a giant mechanical edifice, with an angle that changes depending on the season.
'''Great Work'''<br>
A term dating back to ancient alchemy with a vague and often contextually-dependent meaning, but classically in reference to the pursuit of immortality or great scholarly achievements in service of that goal. In some traditions, the Great Work is also a spiritual transformation; the evolution of the self, or man's collective self, into a higher order of being.
'''Incantation'''<br>
The words used to invoke a certain effect using the Power. Largely mathematical in nature, they are spoken in Eme, an ancient relative of modern Ysaran that has almost nothing in common with the contemporary language. They require extremely precise pronunciation and mathematics, or will fail - sometimes with spectacular consequences.
'''Index'''<br>
The source of the Power. An extra-dimensional machine grafted to a Pneuma, allowing it to physically interact with the Higher Planes, moving energy and matter in manners that transcend the mundane. Each Index is unique, and there are a finite number (1,073,741,824) corresponding to different 'routes' by which the Higher Planes can be accessed, often possessing their own subtle traits which affect the casting of their bearer. If fire was the tool by which man began his dominance of nature, then an Index can be considered the terminus of that long quest; all that separates him from divine power is mastery.
'''Induction'''<br>
Sometimes called an 'Initiation Ceremony.' A process which is required for a person to use the Power in the overwhelming majority of circumstances due to the trauma caused to the Pneuma as a result of the severance process designed by the Ironworkers. One of the immeasurable number of Pneuma stored within the Tower of Asphodel from those not fortunate enough to find direct shelter is affixed to the damaged root, allowing the subject to bear an Index. As the Pneuma is not a thing of flesh and blood, this addition is normally ignored by rest of the brain, the information within discarded and overwritten like a fleeting dream.
'''Iron'''<br>
{{main|Iron}}<br>
A substance of incredible power that was harnessed in the New Kingdoms Era, and became the backbone of civilization, enabling the impossible glories of the Imperial Era. As it was used to construct the Tower of Asphodel and preserve reality, it can no longer truly exist in the material world, in much the same way that a box cannot contain itself. However, there are some minor exceptions.
///False Iron: A shadow, or perhaps a simulacrum of iron, taken from the Tower of Asphodel as it exists in mundane reality. It is found underground in veins all over the Mimikos and the Lower Planes, and its connection to the Tower can never truly be severed.
///True Iron: Found only within the bodies of human beings in tiny quantities as a matter of necessity. It is the product of a stable paradox. It becomes False Iron when it leaves the body, and vice-versa.
'''Ironworkers'''<br>
{{main|Ironworkers}}<br>
The scholars who labored to rebuild reality while the Parties slept within the Tower of Asphodel. Masters of its use from the Imperial Era, they were still limited in their success, and only able to approximate the nature of the plane from inference and incomplete records.
'''Logic Bridge'''<br>
{{main|Logic Bridge}}<br>
An interfacing tool used to connect the human mind to either other minds or objects via exercising the iron of the pneumaic nexus, and its connection to the Tower of Asphodel. In its most basic form, it consists of a piece of False Iron, a switch, and two polarized magnets. Can be used directly to facilitate awkward pseudo-telepathy, but a logic engine is required for translating more complex concepts.
'''Logic Engine'''<br>
{{main|Logic Engine}}<br>
A machine used to perform reasoning. Most, but not all, interface with humans via logic bridges. Though logic engines can take many forms, the most common is the oscillatory logic engine, which utilizes microvibrations and extremely delicate machinery to store and process information, along with hydraulic power both to maintain its core tone and physically operate. Though much slower than minds and the iron-based logic engines of old, they are capable of incredible feats of parallel processing, rendering them able to perform mathematics and analysis beyond the scope of human ability.
///''Echo Maze'': Properly called an Echo Labyrinth. A cube which stores information in its incredibly fine internal indentures. When sound passes through it, a logic engine can process the output as extremely specific information. The most common form of data storage in the present day by far.
'''Luxury Debt'''<br>
A concept that has replaced currency since the advent of mass-duplication arcana destroyed the viability of a scarcity and labor-driven economy. Everyone receives trivially produced goods for free, but to procure something that is either abstract or cannot be duplicated and requires human labor, they must go into debt with the community. This must then be repaid either by community service, or producing something else of value to pass on the debt. Class disparity still exists, however, as it remains possible to amass disproportionate amounts of non-monetary resources for oneself or a company.
'''Mimikos, The'''<br>
The final attempt of the Ironworkers to create a satisfactory replacement for the old world, and the home of the vast majority of living humans. It informally refers to both the structure itself, and the plane in which it was constructed. It is shaped like a giant, incredibly thick bowl, and derives its gravity from a combination of mass, horizontal, and vertical movement. It has three major landmasses.
///''Elysian Pangaea, The'': A massive, vaguely crescent-shaped continent that comprises over 80% of the surface landmass. The coasts of the ocean within the crescent, the Mnemonic Sea, are the center of international civilization.
///''Inotian Archipelago'': A large group of islands upon which the Inotian Party mainly settled. Though they comprise only around 1% of the land in the world, they are densely populated.
///''Orphaned Continent, The'': A continent in the far north, famed for being relatively untamed.
'''Party'''<br>
One of the eight groups that successfully took refuge within the Tower of Aspodel during the collapse of Imperial Era civilization. Each represents a distinct ethnic and cultural group. Some have 'legitimate' governments that can trace their leadership back to the Exodus, while others are the subject of more complicated divisions. The eight Parties are: The Ysaran, Inotian, Mekhian, Saoic, Rhunbardic, Viraaki, Lluateci, and Uana.
///''Ysaran'': Considered the most politically influential party in the Grand Alliance, it originally settled the coasts of the Mnemonic Sea before splintering almost immediately due to a lack of clear leadership. Today, it is largely reunified under the Ysaran Accord, a democratic federation of nations, though the culturally distinct Asharomi cities and the nation of Ikkaryon remain separate. Its people generally have strong features and light-to-medium brown complexions, with a minority having darker brown. Ysaran (specifically, Towerward Ysaran) serves as the de-facto lingua franca of the modern world. They are famed for their grand architecture and their traditions of runework and Golemancy, with Ysaran mathematicians said to be the greatest in the world, though the Uana would disagree.
///''Inotian'': Inversely, considered the most culturally influential party due to its history of seafaring and colonization. Though the most direct continuity of its pre-collapse government founded the Republic of Irenca on the Orphaned Continent, the majority of the party splintered to instead erect city-states on the islands of what is today called the Inotian Archipelago. Its people generally have very strong features and brassy complexions, with a minority being paler. They have a well-established scholarly tradition, with Inotian successfully outcome Mekhian as the language of science, and possess a particular bent towards philosophy. The greatest Diviners in the world, the Sibyls, are Inotian, though they are also responsible for the less prestigious discipline of Metamancy.
///''Mekhian'': Historically non-interventionist yet arguably the most powerful party in an explicit, military-industrial sense, the Mekhians are the only group to have experienced no meaningful political fractures since the settling of the Mimikos. Their state, though heavily federated, consists of the entirety of the non-expatriate and non-expatriate descended population and spans almost the entire civilized east. Its people generally have medium to dark brown complexions and soft features. They also have a strong scholarly tradition, but with a more pragmatic character, and excel at civic management. During the Mourning Period, it was the global center of all arcane research, and its signature disciplines are Geomancy and Thanatomancy.
///''Saoic'': Descended from a group of cultures which developed in partial isolation from the other Covenant signatories in the old world, the Saoic party settled the west of the continent, and today is divided into the Saoic Arcanoncracy, a bureaucratic dictatorship that is the last in the world governed by arcanists, and the much more liberal Dai League, comprised of various small nations with unique cultures. Its people have amber-to-pale complexions and very soft features. More than any other, Saoic culture has deeply internalized its grief for the old world, having an often solemn and mournful character that shuns excess. Despite this, its artistic and literary traditions are the most influential in the world. Ironically considering the government of the Arcanocracy, its accomplishments are more in conventional technology than arcana - though it is responsible for the artificing tradition of Alchemy and the obscure discipline of Radiamancy.
///''Rhunbardic'': A warlike party which settled the plateau and steppes in the center of the continent, with the exception of the exile-realms of Umbrica and Turaggoth on the Orphaned Continent. Once, the Rhunbardic Empire ruled half of the Mourning Realms, but it was defeated at the climax of the Tricenturial War and became the much smaller Rhunbardic Kingdom, the last remaining monarchy (albeit a constitutional one) in the world. Its people have pale or sometimes very pale complexions, and features that vary from soft to mixed. Almost every aspect of Rhunbardic culture is militant - cities resemble fortresses, and roles for individuals are often strict and pre-defined. In terms of the Power, it is most known for its Pyromancy, though the much more esoteric tradition of Chronomancy is also found here.
///''Viraaki'': A party that is widely considered a late-bloomer, having been weak and politically irrelevant for almost a millenia since it settled the jungles and mountains of the south, but now rapidly increasing its influence. Its political structure is unusual, with its disunited realms swearing technical fealty to its capital city-state, Sacred Vir, despite it holding very little practical power. By far the most powerful of these realms is the Exarchate of Palaat, a young nation that has grown rapidly since its founding during the Rhunbardic occupation. Its people have medium to dark brown complexions, but a very wide range of features. It is extremely famed for its Biomancy, which it even incorporates into architecture, and has begun to challenge Inotia and Sao for their cultural and artistic influence.
///''Lluateci'': One of the two Duumvirate parties based in the Empyrean, they rejected the Covenant of the Mourning Realms and chose to settle smaller structures built by the Ironworkers to avoid open conflict, before ultimately consolidating into the six nations that exist today. They generally have soft features and medium to dark red-tinted complexions. Lluateci culture is hyper-liberal to the point that it can appear almost anarchic to outsiders, with tolerance for practices that would be outrageous elsewhere. Their signature discipline is Transmutation, a necessity for surviving in the void of space, though they are also known for their Arcane Engineering.
///''Uana'': The second of the two Duumvirate parties based in the Empyrean, though in their case they remained mostly unified. A isolationist culture, the Uana scorn their bodies and the physical reality of the Mimikos as much as possible, choosing instead to interact through logic bridges; a device of their invention. Superficially, their structures appear utterly mercenary - little more than floating blocks of concrete with incredibly basic living quarters. Yet those few who have visited them describe their society within the artificed space as being an attempt to emulate the old world to a greater degree of fidelity than anywhere else. They are masters of Aetheromancy, and it is said they can bend space almost as well as the Iron Princes of the old world.
'''Period'''<br>
A series of sub-classifications for periods of history within the current, post-Imperial era.
///''Mourning Period'': A time of low-population and great cultural grief for the old world, dominated by the survivors of the event, when civilization was briefly much more primitive than prior ages, mankind not yet having mastered the Power as a replacement for iron.
///''First Resurrection'': A renaissance characterized by a return to urban, centralized society and a resurgence in academic study, especially concerning arcana, resulting in the return of various amenities thought no longer possible without iron. A fleeting return of Imperial Era culture also occurs.
///''Interluminary Strife'': A brief but calamitous period brought on by damage to the Great Lamp, depriving the world of sunlight.
///''Hollow Years'': A dark age of slow recovery from the mass deaths of the previous period.
///''Second Resurrection'': A renewed renaissance, though with a more culturally conservative character, characterized by the emergence of Covenant fundamentalism. This is considered to be the earliest era that remains in living memory outside of the anomalistically elderly.
///''Tricenturial War'': A lengthy period of intermittent warfare between the Rhunbardic Empire and everyone else. Not actually three centuries long, despite the name.
///''Planar Colonization Period'': A period of interest in cross-planar colonization and settlement, as well as interaction (and, ultimately, tension and conflict) with the native inhabitants.
///''Unending Peace, The'': The contemporary age following the creation of the Grand Alliance.
'''Plane'''<br>
An area of dimensionally and ruleset-consistent reality. Though the term theoretically applies to the millions of possible facets of the dimensional landscape in the universe, the more common use is in reference to the planes of the Tower of Asphodel, which all attempt at approximating the nature of mankind's long-gone original reality. A phrase often used to describe the latter in totality is the Remaining World.
'''Pneuma'''<br>
An informal shorthand for the aspect of human brain which operates extradimensionally, a phenomena discovered at the end of the Imperial Era. Though originally arising entirely as a byproduct of biology,iIn the modern day, the process by which the Pneuma is intergrated with the mind must be facilitated artificially with an engineered organ known as the Pneumaic Nexus, and new ones pruned to prevent them from reconnecting with those belonging to their Seed.
'''Political Affiliation'''<br>
Following the end of scarcity and the creation of the Grand Alliance, old political ideologies based around its management became inapplicable, becoming replaced by new variants focused on how society should encourage and reward participation and distribute political power. Often paired with the attitudes to the covenant listed above. For example, the political platform of the Grand Alliance is Humanist-Fundamentalist.
///''Humanism'': The belief that the state should serve every human need it can accommodate without substantial cost unconditionally (generally considered to include unlimited food of reasonable quality, clothes, basic housing and entertainment, education, and essential medical care) but that beyond that internal disparity is acceptable and that luxury and political power should be afforded only as rewards for communal participation, defined broadly as the creation or facilitation of luxuries, or the fulfillment of the essential needs of the state. Considered by its advocates to be the only value system that properly reflects the tenants of the Covenant.
///''Meritism'': The belief that the state should be obligated to provide only the barest essentials for human survival, and that all else must be earned either through either service to the community or personal entrepreneurship. It is conceptually rooted in the idea that human beings only thrive when forced into self-sufficiency, and that to offer too much for nothing, even when abundance permits it, fosters decadence. Many, however, accuse its advocates of more selfish motivations.
///''Paritism'': The belief that the state should offer the people unconditional equality in the distribution of resources, regardless of contribution or personal background. Extremely popular among the young, who have suffered the brunt of widening generational inequality, but considered fringe outside of the global east.
///''Idealism'': Sometimes defined as a subset of Meritism. The belief that the state should reward people neither universally nor on the basis of contribution, but rather by their degree of compliance with a set of national values or "ideals", usually moral in nature, but also often tied up in nationalism and religion. Extremists of this ideology are considered politically toxic and referred to as Iconists.
'''Prosognostic Event/Contact Paradox'''<br>
{{main|Contact Paradox}}
Two potential results of individuals born from the same seed from the Tower of Asphodel coming into contact with one another. The former, caused by merely witnessing a face that matches own self-conception, leads to severe seizure-like symptoms, but this is merely a defense mechanism against the latter. If the individuals touch, the iron in both of their bodies and the surrounding area is obliterated by a temporal paradox, causing the death of both and any bystanders within a few meters.
'''Refractor Rifle'''<br>
A type of firearm which propels pure light energy through a series of filters which can be lowered at the discretion of the user to varying results, ranging from stunning organic targets (though not entirely safely) to melting anything up to and including metal and stone. Developed during the Great Interplanar War, it is beginning to show its age as technology, with armors capable of deflecting its shots at even the most potent settings supposedly in development. Many wait with baited breath for the next leap in non-arcane weapons technology.
'''Seed'''<br>
The source body, stored within the Tower of Asphodel, from which a person is derived on a cellular level. They are derived from the original members of each of the eight Parties, coming to a total of around 100,000 in aggregate.
'''Tower of Asphodel'''<br>
{{main|Tower of Asphodel}}
The structure created by the Ironworkers at the end of the Imperial Era to provide refuge to those who could obtain it, and later to act as a foundation for the planes they would create. It is visible in the sky at all times, though it exists only partially as a physical object.
3e5d7475c09f3a5a1489c8185e6663e570678b15
Template:Main
10
11
22
2023-12-13T13:27:12Z
Systemzero
2
Redirected page to [[Template:Main article]]
wikitext
text/x-wiki
#REDIRECT [[Template:Main article]]
{{Redr|from move}}
9bfa0f472c6059ee05d8bb83d7e9f620bf060057
Module:Yesno
828
17
28
2023-12-13T13:47:25Z
Systemzero
2
Created page with "-- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to the template {{yesno}}. return function (val, default) -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you -- should replace "val:lower()" with "mw.ustring.lower(val)" in the -- following line. val = type(val) == 'string' and val:lower() or val if val == nil then return nil elseif val == true or val == 'yes' or val == 'y' or val =..."
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
Module:Documentation
828
23
43
42
2023-12-13T14:31:30Z
Systemzero
2
1 revision imported
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
local format = mw.ustring.format
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return format('[[%s|%s]]', page, display)
else
return format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return format(
'<span class="%s">(%s)</span>',
message('toolbar-class'),
table.concat(ret, ' | ')
)
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p._getModuleWikitext(args, env))
:wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.canonicalUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------
p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext')
function p._getModuleWikitext(args, env)
local currentTitle = mw.title.getCurrentTitle()
if currentTitle.contentModel ~= 'Scribunto' then return end
pcall(require, currentTitle.prefixedText) -- if it fails, we don't care
local moduleWikitext = package.loaded["Module:Module wikitext"]
if moduleWikitext then
return moduleWikitext.main()
end
end
function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --> '[[File:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --> 'sandbox page'
-- 'sandbox-notice-compare-link-display' --> 'diff'
-- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --> 'test cases'
-- 'sandbox-category' --> 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle
and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text".
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- "This is the template sandbox for [[Template:Foo]] (diff)."
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- "See also the companion subpage for [[Template:Foo/testcases|test cases]]."
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.contentModel == "Scribunto" then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
omargs.text = text .. makeCategoryLink(message('sandbox-category'))
-- 'documentation-clear'
return '<div class="' .. message('clear') .. '"></div>'
.. require('Module:Message box').main('ombox', omargs)
end
function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --> 'pp-template'
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
return require('Module:Protection banner')._main{
message('protection-reason-edit'), small = true
}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level "autoconfirmed", as this is equivalent to
-- no move protection at all.
return require('Module:Protection banner')._main{
action = 'move', small = true
}
else
return nil
end
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
return {
title = title,
docTitle = docTitle,
-- View, display, edit, and purge links if /doc exists.
viewLinkDisplay = message('view-link-display'),
editLinkDisplay = message('edit-link-display'),
historyLinkDisplay = message('history-link-display'),
purgeLinkDisplay = message('purge-link-display'),
preload = preload,
createLinkDisplay = message('create-link-display')
}
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local docTitle = data.docTitle
-- yes, we do intend to purge the template page on which the documentation appears
local purgeLink = makeWikilink("Special:Purge/" .. data.title.prefixedText, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, data.editLinkDisplay)
local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, data.historyLinkDisplay)
return "[" .. viewLink .. "] [" .. editLink .. "] [" .. historyLink .. "] [" .. purgeLink .. "]"
else
local createLink = makeUrlLink(docTitle:canonicalUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
return "[" .. createLink .. "] [" .. purgeLink .. "]"
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editDisplay = message('edit-link-display')
local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, editDisplay)
local historyDisplay = message('history-link-display')
local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:canonicalUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeWikilink("Special:EditPage/" .. sandboxPage, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:canonicalUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeWikilink("Special:EditPage/" .. testcasesPage, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:canonicalUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
268dc89480af10873bfbca5439ae8e61b404f770
Module:Documentation/config
828
24
45
44
2023-12-13T14:31:31Z
Systemzero
2
1 revision imported
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[File:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page'
cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page'
cfg['sandbox-notice-pagetype-other'] = 'sandbox page'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.'
cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'diff'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.'
cfg['sandbox-notice-testcases-link-display'] = 'test cases'
cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'run'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Template sandboxes'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
71b68ed73088f1a59d61acf06bbee9fde6677f03
Module:Documentation/styles.css
828
25
47
46
2023-12-13T14:31:32Z
Systemzero
2
1 revision imported
text
text/plain
/* {{pp|small=yes}} */
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
ce0e629c92e3d825ab9fd927fe6cc37d9117b6cb
Template:Reflist/styles.css
10
26
49
48
2023-12-13T14:31:32Z
Systemzero
2
1 revision imported
text
text/plain
/* {{pp|small=yes}} */
/* can we remove the font size declarations? .references gets a font-size in
* common.css that is always 90, and there is nothing else in reflist out in
* the wild. May affect column sizes.
*/
.reflist {
font-size: 90%; /* Default font-size */
margin-bottom: 0.5em;
list-style-type: decimal;
}
.reflist .references {
font-size: 100%; /* Reset font-size when nested in div.reflist */
margin-bottom: 0; /* Avoid double margin when nested in div.reflist */
list-style-type: inherit; /* Enable custom list style types */
}
/* columns-2 and columns-3 are legacy for "2 or more" column view from when the
* template was implemented with column-count.
*/
.reflist-columns-2 {
column-width: 30em;
}
.reflist-columns-3 {
column-width: 25em;
}
/* Reset top margin for lists embedded in columns */
.reflist-columns {
margin-top: 0.3em;
}
.reflist-columns ol {
margin-top: 0;
}
/* Avoid elements breaking between columns */
.reflist-columns li {
page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */
break-inside: avoid-column;
}
.reflist-upper-alpha {
list-style-type: upper-alpha;
}
.reflist-upper-roman {
list-style-type: upper-roman;
}
.reflist-lower-alpha {
list-style-type: lower-alpha;
}
.reflist-lower-greek {
list-style-type: lower-greek;
}
.reflist-lower-roman {
list-style-type: lower-roman;
}
531a26d48f0e7826c61f764cfb7d5fb200032c34
Template:Main article
10
10
51
21
2023-12-13T14:44:02Z
Systemzero
2
1 revision imported: Main article links
wikitext
text/x-wiki
{{#invoke:main|main}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
a7952a0ddabebcef9371e9783f0fed2425a59187
Module:Hatnote
828
13
53
24
2023-12-13T14:44:03Z
Systemzero
2
1 revision imported: Main article links
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote --
-- --
-- This module produces hatnote links and links to related articles. It --
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --
-- helper functions for other Lua hatnote modules. --
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg
local mArguments -- lazily initialise [[Module:Arguments]]
local yesno -- lazily initialise [[Module:Yesno]]
local formatLink -- lazily initialise [[Module:Format link]] ._formatLink
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
function p.defaultClasses(inline)
-- Provides the default hatnote classes as a space-separated string; useful
-- for hatnote-manipulation modules like [[Module:Hatnote group]].
return
(inline == 1 and 'hatnote-inline' or 'hatnote') .. ' ' ..
'navigation-not-searchable'
end
function p.disambiguate(page, disambiguator)
-- Formats a page title with a disambiguation parenthetical,
-- i.e. "Example" → "Example (disambiguation)".
checkType('disambiguate', 1, page, 'string')
checkType('disambiguate', 2, disambiguator, 'string', true)
disambiguator = disambiguator or 'disambiguation'
return mw.ustring.format('%s (%s)', page, disambiguator)
end
function p.findNamespaceId(link, removeColon)
-- Finds the namespace id (namespace number) of a link or a pagename. This
-- function will not work if the link is enclosed in double brackets. Colons
-- are trimmed from the start of the link by default. To skip colon
-- trimming, set the removeColon parameter to false.
checkType('findNamespaceId', 1, link, 'string')
checkType('findNamespaceId', 2, removeColon, 'boolean', true)
if removeColon ~= false then
link = removeInitialColon(link)
end
local namespace = link:match('^(.-):')
if namespace then
local nsTable = mw.site.namespaces[namespace]
if nsTable then
return nsTable.id
end
end
return 0
end
function p.makeWikitextError(msg, helpLink, addTrackingCategory, title)
-- Formats an error message to be returned to wikitext. If
-- addTrackingCategory is not false after being returned from
-- [[Module:Yesno]], and if we are not on a talk page, a tracking category
-- is added.
checkType('makeWikitextError', 1, msg, 'string')
checkType('makeWikitextError', 2, helpLink, 'string', true)
yesno = require('Module:Yesno')
title = title or mw.title.getCurrentTitle()
-- Make the help link text.
local helpText
if helpLink then
helpText = ' ([[' .. helpLink .. '|help]])'
else
helpText = ''
end
-- Make the category text.
local category
if not title.isTalkPage -- Don't categorise talk pages
and title.namespace ~= 2 -- Don't categorise userspace
and yesno(addTrackingCategory) ~= false -- Allow opting out
then
category = 'Hatnote templates with errors'
category = mw.ustring.format(
'[[%s:%s]]',
mw.site.namespaces[14].name,
category
)
else
category = ''
end
return mw.ustring.format(
'<strong class="error">Error: %s%s.</strong>%s',
msg,
helpText,
category
)
end
local curNs = mw.title.getCurrentTitle().namespace
p.missingTargetCat =
--Default missing target category, exported for use in related modules
((curNs == 0) or (curNs == 14)) and
'Articles with hatnote templates targeting a nonexistent page' or nil
function p.quote(title)
--Wraps titles in quotation marks. If the title starts/ends with a quotation
--mark, kerns that side as with {{-'}}
local quotationMarks = {
["'"]=true, ['"']=true, ['“']=true, ["‘"]=true, ['”']=true, ["’"]=true
}
local quoteLeft, quoteRight = -- Test if start/end are quotation marks
quotationMarks[string.sub(title, 1, 1)],
quotationMarks[string.sub(title, -1, -1)]
if quoteLeft or quoteRight then
title = mw.html.create("span"):wikitext(title)
end
if quoteLeft then title:css("padding-left", "0.15em") end
if quoteRight then title:css("padding-right", "0.15em") end
return '"' .. tostring(title) .. '"'
end
--------------------------------------------------------------------------------
-- Hatnote
--
-- Produces standard hatnote text. Implements the {{hatnote}} template.
--------------------------------------------------------------------------------
function p.hatnote(frame)
local args = getArgs(frame)
local s = args[1]
if not s then
return p.makeWikitextError(
'no text specified',
'Template:Hatnote#Errors',
args.category
)
end
return p._hatnote(s, {
extraclasses = args.extraclasses,
selfref = args.selfref
})
end
function p._hatnote(s, options)
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 2, options, 'table', true)
options = options or {}
local inline = options.inline
local hatnote = mw.html.create(inline == 1 and 'span' or 'div')
local extraclasses
if type(options.extraclasses) == 'string' then
extraclasses = options.extraclasses
end
hatnote
:attr('role', 'note')
:addClass(p.defaultClasses(inline))
:addClass(extraclasses)
:addClass(options.selfref and 'selfref' or nil)
:wikitext(s)
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Hatnote/styles.css' }
} .. tostring(hatnote)
end
return p
3ae1ed7094c5005ca0896395ec9a587287a0bef1
Module:Hatnote list
828
14
55
25
2023-12-13T14:44:03Z
Systemzero
2
1 revision imported: Main article links
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote list --
-- --
-- This module produces and formats lists for use in hatnotes. In particular, --
-- it implements the for-see list, i.e. lists of "For X, see Y" statements, --
-- as used in {{about}}, {{redirect}}, and their variants. Also introduced --
-- are andList & orList helpers for formatting lists with those conjunctions. --
--------------------------------------------------------------------------------
local mArguments --initialize lazily
local mFormatLink = require('Module:Format link')
local mHatnote = require('Module:Hatnote')
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
--------------------------------------------------------------------------------
-- List stringification helper functions
--
-- These functions are used for stringifying lists, usually page lists inside
-- the "Y" portion of "For X, see Y" for-see items.
--------------------------------------------------------------------------------
--default options table used across the list stringification functions
local stringifyListDefaultOptions = {
conjunction = "and",
separator = ",",
altSeparator = ";",
space = " ",
formatted = false
}
--Searches display text only
local function searchDisp(haystack, needle)
return string.find(
string.sub(haystack, (string.find(haystack, '|') or 0) + 1), needle
)
end
-- Stringifies a list generically; probably shouldn't be used directly
local function stringifyList(list, options)
-- Type-checks, defaults, and a shortcut
checkType("stringifyList", 1, list, "table")
if #list == 0 then return nil end
checkType("stringifyList", 2, options, "table", true)
options = options or {}
for k, v in pairs(stringifyListDefaultOptions) do
if options[k] == nil then options[k] = v end
end
local s = options.space
-- Format the list if requested
if options.formatted then
list = mFormatLink.formatPages(
{categorizeMissing = mHatnote.missingTargetCat}, list
)
end
-- Set the separator; if any item contains it, use the alternate separator
local separator = options.separator
for k, v in pairs(list) do
if searchDisp(v, separator) then
separator = options.altSeparator
break
end
end
-- Set the conjunction, apply Oxford comma, and force a comma if #1 has "§"
local conjunction = s .. options.conjunction .. s
if #list == 2 and searchDisp(list[1], "§") or #list > 2 then
conjunction = separator .. conjunction
end
-- Return the formatted string
return mw.text.listToText(list, separator .. s, conjunction)
end
--DRY function
function p.conjList (conj, list, fmt)
return stringifyList(list, {conjunction = conj, formatted = fmt})
end
-- Stringifies lists with "and" or "or"
function p.andList (...) return p.conjList("and", ...) end
function p.orList (...) return p.conjList("or", ...) end
--------------------------------------------------------------------------------
-- For see
--
-- Makes a "For X, see [[Y]]." list from raw parameters. Intended for the
-- {{about}} and {{redirect}} templates and their variants.
--------------------------------------------------------------------------------
--default options table used across the forSee family of functions
local forSeeDefaultOptions = {
andKeyword = 'and',
title = mw.title.getCurrentTitle().text,
otherText = 'other uses',
forSeeForm = 'For %s, see %s.',
}
--Collapses duplicate punctuation
local function punctuationCollapse (text)
local replacements = {
["%.%.$"] = ".",
["%?%.$"] = "?",
["%!%.$"] = "!",
["%.%]%]%.$"] = ".]]",
["%?%]%]%.$"] = "?]]",
["%!%]%]%.$"] = "!]]"
}
for k, v in pairs(replacements) do text = string.gsub(text, k, v) end
return text
end
-- Structures arguments into a table for stringification, & options
function p.forSeeArgsToTable (args, from, options)
-- Type-checks and defaults
checkType("forSeeArgsToTable", 1, args, 'table')
checkType("forSeeArgsToTable", 2, from, 'number', true)
from = from or 1
checkType("forSeeArgsToTable", 3, options, 'table', true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- maxArg's gotten manually because getArgs() and table.maxn aren't friends
local maxArg = 0
for k, v in pairs(args) do
if type(k) == 'number' and k > maxArg then maxArg = k end
end
-- Structure the data out from the parameter list:
-- * forTable is the wrapper table, with forRow rows
-- * Rows are tables of a "use" string & a "pages" table of pagename strings
-- * Blanks are left empty for defaulting elsewhere, but can terminate list
local forTable = {}
local i = from
local terminated = false
-- If there is extra text, and no arguments are given, give nil value
-- to not produce default of "For other uses, see foo (disambiguation)"
if options.extratext and i > maxArg then return nil end
-- Loop to generate rows
repeat
-- New empty row
local forRow = {}
-- On blank use, assume list's ended & break at end of this loop
forRow.use = args[i]
if not args[i] then terminated = true end
-- New empty list of pages
forRow.pages = {}
-- Insert first pages item if present
table.insert(forRow.pages, args[i + 1])
-- If the param after next is "and", do inner loop to collect params
-- until the "and"'s stop. Blanks are ignored: "1|and||and|3" → {1, 3}
while args[i + 2] == options.andKeyword do
if args[i + 3] then
table.insert(forRow.pages, args[i + 3])
end
-- Increment to next "and"
i = i + 2
end
-- Increment to next use
i = i + 2
-- Append the row
table.insert(forTable, forRow)
until terminated or i > maxArg
return forTable
end
-- Stringifies a table as formatted by forSeeArgsToTable
function p.forSeeTableToString (forSeeTable, options)
-- Type-checks and defaults
checkType("forSeeTableToString", 1, forSeeTable, "table", true)
checkType("forSeeTableToString", 2, options, "table", true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- Stringify each for-see item into a list
local strList = {}
if forSeeTable then
for k, v in pairs(forSeeTable) do
local useStr = v.use or options.otherText
local pagesStr =
p.andList(v.pages, true) or
mFormatLink._formatLink{
categorizeMissing = mHatnote.missingTargetCat,
link = mHatnote.disambiguate(options.title)
}
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)
forSeeStr = punctuationCollapse(forSeeStr)
table.insert(strList, forSeeStr)
end
end
if options.extratext then table.insert(strList, punctuationCollapse(options.extratext..'.')) end
-- Return the concatenated list
return table.concat(strList, ' ')
end
-- Produces a "For X, see [[Y]]" string from arguments. Expects index gaps
-- but not blank/whitespace values. Ignores named args and args < "from".
function p._forSee (args, from, options)
local forSeeTable = p.forSeeArgsToTable(args, from, options)
return p.forSeeTableToString(forSeeTable, options)
end
-- As _forSee, but uses the frame.
function p.forSee (frame, from, options)
mArguments = require('Module:Arguments')
return p._forSee(mArguments.getArgs(frame), from, options)
end
return p
d0828422b1aa0d0d0092d699d059c9e882260398
Module:Main
828
12
57
23
2023-12-13T14:44:06Z
Systemzero
2
1 revision imported: Main article links
Scribunto
text/plain
--[[
-- This module produces a link to a main article or articles. It implements the
-- template {{main}}.
--
-- If the module is used in category or category talk space, it produces "The
-- main article for this category is xxx". Otherwise, it produces
-- "Main article: xxx".
--]]
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments -- lazily initialise
local p = {}
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {parentOnly = true})
local pages = {}
for k, v in pairs(args) do
if type(k) == 'number' then
local display = args['label ' .. k] or args['l' .. k]
local page = display and
string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v
pages[#pages + 1] = page
end
end
if #pages == 0 and mw.title.getCurrentTitle().namespace == 0 then
return mHatnote.makeWikitextError(
'no page names specified',
'Template:Main#Errors',
args.category
)
end
local options = {
selfref = args.selfref
}
return p._main(pages, options)
end
function p._main(args, options)
-- Get the list of pages. If no first page was specified we use the current
-- page name.
local currentTitle = mw.title.getCurrentTitle()
if #args == 0 then args = {currentTitle.text} end
local firstPage = string.gsub(args[1], '|.*$', '')
-- Find the pagetype.
local pageType = mHatnote.findNamespaceId(firstPage) == 0 and 'article' or 'page'
-- Make the formatted link text
list = mHatlist.andList(args, true)
-- Build the text.
local isPlural = #args > 1
local mainForm
local curNs = currentTitle.namespace
if (curNs == 14) or (curNs == 15) then --category/talk namespaces
mainForm = isPlural and
'The main %ss for this [[Wikipedia:Categorization|category]] are %s'
or
'The main %s for this [[Wikipedia:Categorization|category]] is %s'
else
mainForm = isPlural and 'Main %ss: %s' or 'Main %s: %s'
end
local text = string.format(mainForm, pageType, list)
-- Process the options and pass the text to the _rellink function in
-- [[Module:Hatnote]].
options = options or {}
local hnOptions = {
selfref = options.selfref
}
return mHatnote._hatnote(text, hnOptions)
end
return p
517f3aa2c528cf570341bd093fd71fefd6755aca
Module:Hatnote/styles.css
828
27
59
58
2023-12-13T14:44:08Z
Systemzero
2
1 revision imported: Main article links
text
text/plain
/* {{pp|small=y}} */
.hatnote {
font-style: italic;
}
/* Limit structure CSS to divs because of [[Module:Hatnote inline]] */
div.hatnote {
/* @noflip */
padding-left: 1.6em;
margin-bottom: 0.5em;
}
.hatnote i {
font-style: normal;
}
/* The templatestyles element inserts a link element before hatnotes.
* TODO: Remove link if/when WMF resolves T200206 */
.hatnote + link + .hatnote {
margin-top: -0.5em;
}
44680ffd6e888866df2cdfa0341af9c7b97da94c
Module:Format link
828
15
61
26
2023-12-13T14:44:09Z
Systemzero
2
1 revision imported: Main article links
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Format link
--
-- Makes a wikilink from the given link and display values. Links are escaped
-- with colons if necessary, and links to sections are detected and displayed
-- with " § " as a separator rather than the standard MediaWiki "#". Used in
-- the {{format link}} template.
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg
local mArguments -- lazily initialise [[Module:Arguments]]
local mError -- lazily initialise [[Module:Error]]
local yesno -- lazily initialise [[Module:Yesno]]
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
local function maybeItalicize(s, shouldItalicize)
-- Italicize s if s is a string and the shouldItalicize parameter is true.
if s and shouldItalicize then
return '<i>' .. s .. '</i>'
else
return s
end
end
local function parseLink(link)
-- Parse a link and return a table with the link's components.
-- These components are:
-- - link: the link, stripped of any initial colon (always present)
-- - page: the page name (always present)
-- - section: the page name (may be nil)
-- - display: the display text, if manually entered after a pipe (may be nil)
link = removeInitialColon(link)
-- Find whether a faux display value has been added with the {{!}} magic
-- word.
local prePipe, display = link:match('^(.-)|(.*)$')
link = prePipe or link
-- Find the page, if it exists.
-- For links like [[#Bar]], the page will be nil.
local preHash, postHash = link:match('^(.-)#(.*)$')
local page
if not preHash then
-- We have a link like [[Foo]].
page = link
elseif preHash ~= '' then
-- We have a link like [[Foo#Bar]].
page = preHash
end
-- Find the section, if it exists.
local section
if postHash and postHash ~= '' then
section = postHash
end
return {
link = link,
page = page,
section = section,
display = display,
}
end
local function formatDisplay(parsed, options)
-- Formats a display string based on a parsed link table (matching the
-- output of parseLink) and an options table (matching the input options for
-- _formatLink).
local page = maybeItalicize(parsed.page, options.italicizePage)
local section = maybeItalicize(parsed.section, options.italicizeSection)
if (not section) then
return page
elseif (not page) then
return mw.ustring.format('§ %s', section)
else
return mw.ustring.format('%s § %s', page, section)
end
end
local function missingArgError(target)
mError = require('Module:Error')
return mError.error{message =
'Error: no link or target specified! ([[' .. target .. '#Errors|help]])'
}
end
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.formatLink(frame)
-- The formatLink export function, for use in templates.
yesno = require('Module:Yesno')
local args = getArgs(frame)
local link = args[1] or args.link
local target = args[3] or args.target
if not (link or target) then
return missingArgError('Template:Format link')
end
return p._formatLink{
link = link,
display = args[2] or args.display,
target = target,
italicizePage = yesno(args.italicizepage),
italicizeSection = yesno(args.italicizesection),
categorizeMissing = args.categorizemissing
}
end
function p._formatLink(options)
-- The formatLink export function, for use in modules.
checkType('_formatLink', 1, options, 'table')
local function check(key, expectedType) --for brevity
checkTypeForNamedArg(
'_formatLink', key, options[key], expectedType or 'string', true
)
end
check('link')
check('display')
check('target')
check('italicizePage', 'boolean')
check('italicizeSection', 'boolean')
check('categorizeMissing')
-- Normalize link and target and check that at least one is present
if options.link == '' then options.link = nil end
if options.target == '' then options.target = nil end
if not (options.link or options.target) then
return missingArgError('Module:Format link')
end
local parsed = parseLink(options.link)
local display = options.display or parsed.display
local catMissing = options.categorizeMissing
local category = ''
-- Find the display text
if not display then display = formatDisplay(parsed, options) end
-- Handle the target option if present
if options.target then
local parsedTarget = parseLink(options.target)
parsed.link = parsedTarget.link
parsed.page = parsedTarget.page
end
-- Test if page exists if a diagnostic category is specified
if catMissing and (mw.ustring.len(catMissing) > 0) then
local title = nil
if parsed.page then title = mw.title.new(parsed.page) end
if title and (not title.isExternal) then
local success, exists = pcall(function() return title.exists end)
if success and not exists then
category = mw.ustring.format('[[Category:%s]]', catMissing)
end
end
end
-- Format the result as a link
if parsed.link == display then
return mw.ustring.format('[[:%s]]%s', parsed.link, category)
else
return mw.ustring.format('[[:%s|%s]]%s', parsed.link, display, category)
end
end
--------------------------------------------------------------------------------
-- Derived convenience functions
--------------------------------------------------------------------------------
function p.formatPages(options, pages)
-- Formats an array of pages using formatLink and the given options table,
-- and returns it as an array. Nil values are not allowed.
local ret = {}
for i, page in ipairs(pages) do
ret[i] = p._formatLink{
link = page,
categorizeMissing = options.categorizeMissing,
italicizePage = options.italicizePage,
italicizeSection = options.italicizeSection
}
end
return ret
end
return p
5c878065ff3809629376f94da43cf39a395b01b1
Tower of Asphodel
0
3
62
3
2023-12-13T18:58:21Z
Systemzero
2
wikitext
text/x-wiki
The Tower of Asphodel is a structure created by the [[Ironworkers]] after the [[Imperial Era]]<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep 008: Pilgrimage to the Deep (𒐀)]</ref> as a substrate for the [[Remaining World]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image 026: In Fading Image (𒐁)]</ref> It is a metaphysical object with a physical presence within the planes it supports. Space becomes less conventional towards the boundaries of its ruleset.
== Relation to planes ==
The Tower is nominally two to three million miles away from the [[Mimikos]]. Reaching it requires use of the [[Arcana|Power]].
In orreries, the Tower of Asphodel is depicted as being in the center of the Remaining World, surrounded by the seven planes in its orbit.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting 019: The Quest Unrelenting (𒐀)]</ref>
== Relation to human beings ==
All human beings have a connection to the Tower through their [[Seed|seeds]]. This connection is only severed in the event of a [[Contact Paradox]].
== Interior of Tower ==
Everything within the tower is collapsed into a singularity of recorded matter. 100,000 individuals from before the collapse have their bodies preserved in the Tower. The Tower also contains the disembodied pneuma held in stasis of billions of people from the old world.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/720867/055-the-die-falls 055: The Die Falls (𒐅)]</ref>
The Nekrokos is a demi-plane at the uppermost level of the Tower.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/788908/068-power-of-the-gods 068: Power of the Gods (𒐂)]</ref>
== History ==
After preserving humanity within the the Tower, the Ironworkers placed themselves in stasis until it was possible to create a new stable plane.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/681110/045-the-chosen-children 045: The Chosen Children (𒐅)]</ref>
==References==
{{reflist}}
de10f3cff09189ed8b76654f13b648792f2d390a
66
62
2023-12-14T23:27:48Z
SilverHydra
7
/* Relation to planes */
wikitext
text/x-wiki
The Tower of Asphodel is a structure created by the [[Ironworkers]] after the [[Imperial Era]]<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep 008: Pilgrimage to the Deep (𒐀)]</ref> as a substrate for the [[Remaining World]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image 026: In Fading Image (𒐁)]</ref> It is a metaphysical object with a physical presence within the planes it supports. Space becomes less conventional towards the boundaries of its ruleset.
== Relation to planes ==
The Tower is nominally two to three million miles away from the [[Mimikos]]. Reaching it requires use of the [[Arcana|Power]].
In orreries, the Tower of Asphodel is depicted as being in the center of the Remaining World, surrounded by [[the seven planes]] in its orbit.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting 019: The Quest Unrelenting (𒐀)]</ref>
== Relation to human beings ==
All human beings have a connection to the Tower through their [[Seed|seeds]]. This connection is only severed in the event of a [[Contact Paradox]].
== Interior of Tower ==
Everything within the tower is collapsed into a singularity of recorded matter. 100,000 individuals from before the collapse have their bodies preserved in the Tower. The Tower also contains the disembodied pneuma held in stasis of billions of people from the old world.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/720867/055-the-die-falls 055: The Die Falls (𒐅)]</ref>
The Nekrokos is a demi-plane at the uppermost level of the Tower.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/788908/068-power-of-the-gods 068: Power of the Gods (𒐂)]</ref>
== History ==
After preserving humanity within the the Tower, the Ironworkers placed themselves in stasis until it was possible to create a new stable plane.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/681110/045-the-chosen-children 045: The Chosen Children (𒐅)]</ref>
==References==
{{reflist}}
588e17d39b05491739973f9567b6abb7e13cbb9e
User:Systemzero
2
28
63
2023-12-14T03:15:38Z
Systemzero
2
Created page with "My minimal wiki experience is with editing content on pre existing wikis. Since [https://wiki.whentheycry.org/wiki/Main_Page When They Cry Wiki] is the Miraheze/MediaWiki I'm most familiar with, I've been cribbing code from there. The interwiki prefix I've been using for import is <code>whentheycrywiki</code>. == Technical needs == * Enable [https://www.mediawiki.org/wiki/Help:Subpages subpages] to fix the CSS templates for the reference list and main article templates..."
wikitext
text/x-wiki
My minimal wiki experience is with editing content on pre existing wikis. Since [https://wiki.whentheycry.org/wiki/Main_Page When They Cry Wiki] is the Miraheze/MediaWiki I'm most familiar with, I've been cribbing code from there. The interwiki prefix I've been using for import is <code>whentheycrywiki</code>.
== Technical needs ==
* Enable [https://www.mediawiki.org/wiki/Help:Subpages subpages] to fix the CSS templates for the reference list and main article templates
* Figure out how to mark for spoilers so that first time readers can still use this wiki as a reference. Possibly organize information by chapter?
* Character page template
== Ideas for wiki expansion ==
* Longer main articles for glossary entries
* Create spoiler marked timeline
* Link to [https://sekhmet.fun/ sekhmet.fun]
* Chapter or story arc summaries?
* Page for playwright & director rules
* Page(s) for red and purple text
0cbce5ee7cc5581ad749e57f93363a74ff5f348e
99
63
2023-12-15T03:23:30Z
Systemzero
2
wikitext
text/x-wiki
<big>🕳️ ← this way to the sanctuary</big>
----
We’ve attained two fates<br>
We’re all alike, one life form
----
I have reached my heart's desire,<br>
This ancient island of mysteries!
----
The eternal miracle I believe in.<br>
The eternal deity I tested.<br>
Ah, Infinite history of the “Middle Ages.”<br>
Be reborn in me!
5913b6487fc3466eef0661657abbf4bc7904f262
List of characters in The Flower That Bloomed Nowhere
0
8
64
20
2023-12-14T03:30:55Z
Jjjqance
5
/* Non-attendees */
wikitext
text/x-wiki
== Exemplary Acolytes Class ==
* [[Utsushikome of Fusai]]
* [[Ran of Hoa-Trinh]]
* [[Kamrusepa of Tuon]]
* [[Theodoros of Melanthos]]
* [[Ptolema of Rheeds]]
* [[Seth of Ikkuret]]
* [[Ophelia of the Glass Fields]]
* [[Lilith of Eskhalon]]
* [[Bardiya of Tuon]]
* [[Ezekiel of Ilaadbat]]
* [[Jia Fang]]
== Order of the Universal Panacea ==
* [[Linos of Melanthos]]
* [[Neferuaten of Amat]]
* [[Durvasa of Wayal]]
* [[Zeno of Apocyrion]]
* [[Amtu-Heddu-Anna]]
* [[Hamilcar of Kane]]
* [[Sac'Nicte'Ic'Nal]]
* [[Yantho'Ic'Thal]]
* [[Vijana of Yamune]]
== Guests ==
* [[Mehit of Eskhalon]]
* [[Balthazar of Isan]]
* [[Samium of Ur-Ysar]]
== Non-attendees ==
* [[⬛️⬛️⬛️⬛️⬛️ of Fusai]]
* [[Nindar of Inadu]]
* [[Jothi of Somrang]]
* [[Autonoe of Koranthia]]
* [[Ishkibal of Nuradan]]
* [[Alexandros of Myrh]]
* [[Harkhuf]]
* [[Iwa of Suyak]]
4a101582158dc8d601c51e990b5a650bab965946
65
64
2023-12-14T03:32:10Z
Jjjqance
5
/* Non-attendees */
wikitext
text/x-wiki
== Exemplary Acolytes Class ==
* [[Utsushikome of Fusai]]
* [[Ran of Hoa-Trinh]]
* [[Kamrusepa of Tuon]]
* [[Theodoros of Melanthos]]
* [[Ptolema of Rheeds]]
* [[Seth of Ikkuret]]
* [[Ophelia of the Glass Fields]]
* [[Lilith of Eskhalon]]
* [[Bardiya of Tuon]]
* [[Ezekiel of Ilaadbat]]
* [[Jia Fang]]
== Order of the Universal Panacea ==
* [[Linos of Melanthos]]
* [[Neferuaten of Amat]]
* [[Durvasa of Wayal]]
* [[Zeno of Apocyrion]]
* [[Amtu-Heddu-Anna]]
* [[Hamilcar of Kane]]
* [[Sac'Nicte'Ic'Nal]]
* [[Yantho'Ic'Thal]]
* [[Vijana of Yamune]]
== Guests ==
* [[Mehit of Eskhalon]]
* [[Balthazar of Isan]]
* [[Samium of Ur-Ysar]]
== Non-attendees ==
* [[⬛️⬛️⬛️⬛️⬛️ of Fusai]]
* [[Nindar of Inadu]]
* [[Jothi of Somrang]]
* [[Autonoe of Koranthia]]
* [[Ishkibal of Nuradan]]
* [[Alexandros of Myrh]]
* [[Harkhuf]]
* [[Iwa of Suyak]]
* [[Cheng Gue]]
a41a340ea143c807fab6c67e567935ef9a4115eb
Remaining World
0
29
67
2023-12-14T23:54:00Z
SilverHydra
7
Created page with "The planes are spaces of dimensionally and ruleset-consistent reality within the remaining world. Though the term theoretically applies to the millions of possible facets of the remaining world, the more common use is in reference to the seven planes of the [[Tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary], often depicted as stacked sequentally from the "bottom" towards the "top" of the tower [https://..."
wikitext
text/x-wiki
The planes are spaces of dimensionally and ruleset-consistent reality within the remaining world. Though the term theoretically applies to the millions of possible facets of the remaining world, the more common use is in reference to the seven planes of the [[Tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary], often depicted as stacked sequentally from the "bottom" towards the "top" of the tower [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. This is a mostly metaphorical view as none of the planes are visible from any other planes and it's impossible to travel between planes using conventional travel.
The seven planes come from the ironworkers' attempts at reconstructing the physics and living conditions of the old world in the restricted and alien conditions of the Tower of Asphodel [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary][https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]. Each of the seven planes represents an attempt, most of them being failures and not condusive to human habitation [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. The seven planes are, in order from lowest/oldest to highest/newest, [[Ergastrikos]], [[Paradoxikos]], [[Lavyrinkos]], [[Thyelikos]], [[Diakos]], [[Atelikos]] and [[Mimikos]].
ff50dfbc1cde3678fbe62ac975c87ba38c94f569
69
67
2023-12-14T23:59:56Z
SilverHydra
7
wikitext
text/x-wiki
The planes are spaces of dimensionally and ruleset-consistent reality within the remaining world. Though the term theoretically applies to the millions of possible facets of the remaining world, the more common use is in reference to the seven planes of the [[Tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary], often depicted as stacked sequentally from the "bottom" towards the "top" of the tower [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. This is a mostly metaphorical view as none of the planes are visible from any other planes and it's impossible to travel between planes using conventional travel.
The seven planes come from the ironworkers' attempts at reconstructing the physics and living conditions of the old world in the restricted and alien conditions of the Tower of Asphodel [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary][https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]. Each of the seven planes represents an attempt, most of them being failures and not condusive to human habitation [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. The seven planes are, in order from lowest/oldest to highest/newest, [[Ergastrikos]], [[Paradoxikos]], [[Lavyrinkos]], [[Thyelikos]], [[Diakos]], [[Atelikos]] and [[Mimikos]].
[[File:The Planes 3.png|thumb|alt=Illustration of the seven planes stacked in order from lowest to highest.|The seven planes illustrated by community member SilverHydra]]
0c3955453678adb60b2d82b0204c4a7628db9a05
70
69
2023-12-15T00:07:17Z
SilverHydra
7
wikitext
text/x-wiki
The planes are spaces of dimensionally and ruleset-consistent reality within the remaining world. Though the term theoretically applies to the millions of possible facets of the remaining world, the more common use is in reference to the seven planes of the [[Tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary], often depicted as stacked sequentally from the "bottom" towards the "top" of the tower [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. This is an accurate metaphor as they exist sequentially, but none of the planes are visible from any other planes and it's impossible to travel between planes using conventional travel.
The seven planes come from the ironworkers' attempts at reconstructing the physics and living conditions of the old world in the restricted and alien conditions of the Tower of Asphodel [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary][https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]. Each of the seven planes represents an attempt, most of them being failures and not condusive to human habitation [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. The seven planes are, in order from lowest/oldest to highest/newest, [[Ergastrikos]], [[Paradoxikos]], [[Lavyrinkos]], [[Thyelikos]], [[Diakos]], [[Atelikos]] and [[Mimikos]]. The space existing below the Ergastrikos is referred to as the [[Nadir]], and the space above the Mimikos is referred to as [[The Empyrean]].
[[File:The Planes 3.png|thumb|alt=Illustration of the seven planes stacked in order from lowest to highest.|The seven planes illustrated by community member SilverHydra]]
707cd99e97a5886e3ca4a6cc80bc76e4126cf07c
73
70
2023-12-15T00:14:43Z
SilverHydra
7
wikitext
text/x-wiki
The planes are spaces of dimensionally and ruleset-consistent reality within the remaining world. Though the term theoretically applies to the millions of possible facets of the remaining world, the more common use is in reference to the seven planes of the [[Tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary], often depicted as stacked sequentally from the "bottom" towards the "top" of the tower [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. This is an accurate metaphor as they exist sequentially, but none of the planes are visible from any other planes and it's impossible to travel between planes using conventional travel.
The seven planes come from the ironworkers' attempts at reconstructing the physics and living conditions of the old world in the restricted and alien conditions of the Tower of Asphodel [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary][https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]. Each of the seven planes represents an attempt, most of them being failures and not condusive to human habitation [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. The seven planes are, in order from lowest/oldest to highest/newest, [[Ergastrikos]], [[Paradoxikos]], [[Lavyrinkos]], [[Thyellikos]], [[Diakos]], [[Atelikos]] and [[Mimikos]]. The space existing below the Ergastrikos is referred to as the [[Nadir]], and the space above the Mimikos is referred to as [[The Empyrean]].
[[File:The Planes 3.png|thumb|alt=Illustration of the seven planes stacked in order from lowest to highest.|The seven planes illustrated by community member SilverHydra]]
5969364e8a04750abf1fd8693059bbc0f19d0412
75
73
2023-12-15T00:23:10Z
SilverHydra
7
wikitext
text/x-wiki
The planes are spaces of dimensionally and ruleset-consistent reality within the remaining world. Though the term theoretically applies to the millions of possible facets of the remaining world, the more common use is in reference to the seven planes of the [[Tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary], often depicted as stacked sequentally from the "bottom" towards the "top" of the tower [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. This is an accurate metaphor as they exist sequentially, but none of the planes are visible from any other planes and it's impossible to travel between planes using conventional travel.
The seven planes come from the ironworkers' attempts at reconstructing the physics and living conditions of the old world in the restricted and alien conditions of the Tower of Asphodel [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary][https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]. Each of the seven planes represents an attempt, most of them being failures and not condusive to human habitation [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. The seven planes are, in order from lowest/oldest to highest/newest, [[Ergastrikos]], [[Paradoxikos]], [[Lavyrinthikos]], [[Thyellikos]], [[Diakos]], [[Atelikos]] and [[Mimikos]]. The space existing below the Ergastrikos is referred to as the [[Nadir]], and the space above the Mimikos is referred to as [[The Empyrean]].
[[File:The Planes 3.png|thumb|alt=Illustration of the seven planes stacked in order from lowest to highest.|The seven planes illustrated by community member SilverHydra]]
246c709948fdb3fce40479b820d64e46ab11a385
File:The Planes 3.png
6
30
68
2023-12-14T23:59:28Z
SilverHydra
7
wikitext
text/x-wiki
The seven planes of the Tower of Asphodel illustrated by community member SilverHydra. Based on limited descriptions given by Lurina in the story and on discord.
96d9b3237f2b902093326021a70e0ddc9260a39e
Ergastrikos
0
31
71
2023-12-15T00:11:09Z
SilverHydra
7
Created page with "The Ergastrikos is the lowest of [[the seven planes]] and the first attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. [[Lurina]] describes the Ergastrikos in a discord post as follows: ''"Ergastrikos ("Sandbox World") The first world created by the Ironworkers, it later served as a testing ground for their efforts. An infinite flat plane is littered with failed attempts at creating a conventional, spherical planet."''"
wikitext
text/x-wiki
The Ergastrikos is the lowest of [[the seven planes]] and the first attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. [[Lurina]] describes the Ergastrikos in a discord post as follows:
''"Ergastrikos ("Sandbox World") The first world created by the Ironworkers, it later served as a testing ground for their efforts. An infinite flat plane is littered with failed attempts at creating a conventional, spherical planet."''
6bf036cf9e5614a13cb1e2c50289fab409d4aa72
88
71
2023-12-15T01:28:15Z
SilverHydra
7
wikitext
text/x-wiki
The Ergastrikos is the lowest of [[the seven planes]] and the first attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. [[Lurina]] describes the Ergastrikos in rwo discord posts as follows:
''"Ergastrikos ("Sandbox World") The first world created by the Ironworkers, it later served as a testing ground for their efforts. An infinite flat plane is littered with failed attempts at creating a conventional, spherical planet."''
''"Regarding... the Esgastrikos, I'd probably imagined... [it] would probably be represented as just a flat platform at the base of the orrery. Maybe with some broken planets."''
0552e4d0f206c8af86a32860fc4928aaef889b14
90
88
2023-12-15T01:29:20Z
Azzi
8
wikitext
text/x-wiki
The Ergastrikos is the lowest of [[the seven planes]] and the first attempt from the [[Ironworkers]] at recreating the physics and living conditions of [[the old world]]. [[Lurina]] describes the Ergastrikos in rwo discord posts as follows:
''"Ergastrikos ("Sandbox World") The first world created by the Ironworkers, it later served as a testing ground for their efforts. An infinite flat plane is littered with failed attempts at creating a conventional, spherical planet."''
''"Regarding... the Esgastrikos, I'd probably imagined... [it] would probably be represented as just a flat platform at the base of the orrery. Maybe with some broken planets."''
c589f43e753f5822598316284954d4f34c4bdeba
Paradoxikos
0
32
72
2023-12-15T00:14:12Z
SilverHydra
7
Created page with "The Paradoxikos is the lowest of [[the seven planes]] and the second attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. [[Lurina]] describes the Paradoxikos in a discord post as follows: ''"Paradoxikos ("Paradox World") An ambitious world designed to emulate reality experientially rather than foundationally, with a mobius strip-like structure. A completely failed project in which time and space flow incoherently and in w..."
wikitext
text/x-wiki
The Paradoxikos is the lowest of [[the seven planes]] and the second attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. [[Lurina]] describes the Paradoxikos in a discord post as follows:
''"Paradoxikos ("Paradox World") An ambitious world designed to emulate reality experientially rather than foundationally, with a mobius strip-like structure. A completely failed project in which time and space flow incoherently and in which nothing can survive."''
7557d5a4dcf78c45e69a6a67d4416cbbc491bed9
81
72
2023-12-15T00:28:10Z
SilverHydra
7
wikitext
text/x-wiki
The Paradoxikos is the second lowest of [[the seven planes]] and the second attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. [[Lurina]] describes the Paradoxikos in a discord post as follows:
''"Paradoxikos ("Paradox World") An ambitious world designed to emulate reality experientially rather than foundationally, with a mobius strip-like structure. A completely failed project in which time and space flow incoherently and in which nothing can survive."''
8e9698a026e6e370242e1de6646fb6b7d30c58b9
91
81
2023-12-15T01:30:24Z
Azzi
8
wikitext
text/x-wiki
The Paradoxikos is the second lowest of [[the seven planes]] and the second attempt from the [[Ironworkers]] at recreating the physics and living conditions of [[the old world]]. [[Lurina]] describes the Paradoxikos in a discord post as follows:
''"Paradoxikos ("Paradox World") An ambitious world designed to emulate reality experientially rather than foundationally, with a mobius strip-like structure. A completely failed project in which time and space flow incoherently and in which nothing can survive."''
c5ffaaa275ac133d9bc2d2b0bd0ffb45740b581a
Lavyrinkos
0
33
74
2023-12-15T00:22:14Z
SilverHydra
7
Created page with "The Lavyrinkos is the third lowest of [[the seven planes]] and the third attempt from [[the ironworkes]] at recreating the physics and living conditions of [[the old world]]. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as Mahabaal, the father of Lilith of Eshkalon and brother of Hamilkar of Kane. He has since gone missing, though it is unknown if he went missing while exploring the Lavyrinthikos specifically [https://..."
wikitext
text/x-wiki
The Lavyrinkos is the third lowest of [[the seven planes]] and the third attempt from [[the ironworkes]] at recreating the physics and living conditions of [[the old world]]. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as Mahabaal, the father of Lilith of Eshkalon and brother of Hamilkar of Kane. He has since gone missing, though it is unknown if he went missing while exploring the Lavyrinthikos specifically [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/842122/078-justice-and-kindness]. [[Lurina]] describes the Lavyrinkos in a discord post as follows:
''"Lavyrinkos ("Labyrinth World") A world designed as a vast number of small demi-planes that were intended to interlink completely, creating the illusion of a discrete reality, it has now broken down its component parts, the connections between them shifting constantly. Incredibly diverse."''
de9f30e9f66eb5e6922086251826adfb1488fdce
77
74
2023-12-15T00:25:47Z
SilverHydra
7
Redirected page to [[Lavyrinthikos]]
wikitext
text/x-wiki
#REDIRECT [[lavyrinthikos]]
a8eab2a7e2d82abcd35d8b0b1341836fed7f5da9
Lavyrinthikos
0
34
76
2023-12-15T00:25:11Z
SilverHydra
7
Created page with "The Lavyrinthikos is the third lowest of [[the seven planes]] and the third attempt from [[the ironworkes]] at recreating the physics and living conditions of [[the old world]]. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as Mahabaal, the father of Lilith of Eshkalon and brother of Hamilkar of Kane. He has since gone missing, though it is unknown if he went missing while exploring the Lavyrinthikos specifically [https..."
wikitext
text/x-wiki
The Lavyrinthikos is the third lowest of [[the seven planes]] and the third attempt from [[the ironworkes]] at recreating the physics and living conditions of [[the old world]]. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as Mahabaal, the father of Lilith of Eshkalon and brother of Hamilkar of Kane. He has since gone missing, though it is unknown if he went missing while exploring the Lavyrinthikos specifically [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/842122/078-justice-and-kindness]. [[Lurina]] describes the Lavyrinkos in a discord post as follows:
''"Lavyrinkos ("Labyrinth World") A world designed as a vast number of small demi-planes that were intended to interlink completely, creating the illusion of a discrete reality, it has now broken down its component parts, the connections between them shifting constantly. Incredibly diverse."''
624c6317c871a0521e9ebc76733c98c10c983c4b
78
76
2023-12-15T00:26:42Z
SilverHydra
7
wikitext
text/x-wiki
The Lavyrinthikos is the third lowest of [[the seven planes]] and the third attempt from [[the ironworkes]] at recreating the physics and living conditions of [[the old world]]. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as [[Mahabaal]], the father of [[Lilith of Eshkalon]] and brother of [[Hamilkar of Kane]]. He has since gone missing, though it is unknown if he went missing while exploring the Lavyrinthikos specifically [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/842122/078-justice-and-kindness]. [[Lurina]] describes the Lavyrinkos in a discord post as follows:
''"Lavyrinkos ("Labyrinth World") A world designed as a vast number of small demi-planes that were intended to interlink completely, creating the illusion of a discrete reality, it has now broken down its component parts, the connections between them shifting constantly. Incredibly diverse."''
f988d809096ac416cf1a469c0cda8782e9c38de2
79
78
2023-12-15T00:27:20Z
SilverHydra
7
wikitext
text/x-wiki
The Lavyrinthikos is the third lowest of [[the seven planes]] and the third attempt from [[the ironworkes]] at recreating the physics and living conditions of [[the old world]]. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as [[Mahabaal]], the father of [[Lilith of Eskhalon]] and brother of [[Hamilkar of Kane]]. He has since gone missing, though it is unknown if he went missing while exploring the Lavyrinthikos specifically [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/842122/078-justice-and-kindness]. [[Lurina]] describes the Lavyrinkos in a discord post as follows:
''"Lavyrinkos ("Labyrinth World") A world designed as a vast number of small demi-planes that were intended to interlink completely, creating the illusion of a discrete reality, it has now broken down its component parts, the connections between them shifting constantly. Incredibly diverse."''
e3b36b5a7dace7d27f373ac78688a30bebc4a072
80
79
2023-12-15T00:27:44Z
SilverHydra
7
wikitext
text/x-wiki
The Lavyrinthikos is the third lowest of [[the seven planes]] and the third attempt from [[the ironworkes]] at recreating the physics and living conditions of [[the old world]]. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as [[Mahabaal]], the father of [[Lilith of Eskhalon]] and brother of [[Hamilcar of Kane]]. He has since gone missing, though it is unknown if he went missing while exploring the Lavyrinthikos specifically [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/842122/078-justice-and-kindness]. [[Lurina]] describes the Lavyrinkos in a discord post as follows:
''"Lavyrinkos ("Labyrinth World") A world designed as a vast number of small demi-planes that were intended to interlink completely, creating the illusion of a discrete reality, it has now broken down its component parts, the connections between them shifting constantly. Incredibly diverse."''
7c7351f5f5a6f7d6327c790d82da35beb9cb844d
85
80
2023-12-15T01:24:04Z
SilverHydra
7
wikitext
text/x-wiki
The Lavyrinthikos is the third lowest of [[the seven planes]] and the third attempt from [[the ironworkes]] at recreating the physics and living conditions of [[the old world]]. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as [[Mahabaal]], the father of [[Lilith of Eskhalon]] and brother of [[Hamilcar of Kane]]. He has since gone missing, though it is unknown if he went missing while exploring the Lavyrinthikos specifically [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/842122/078-justice-and-kindness]. [[Lurina]] describes the Lavyrinkos in two discord posts as follows:
''"Lavyrinkos ("Labyrinth World") A world designed as a vast number of small demi-planes that were intended to interlink completely, creating the illusion of a discrete reality, it has now broken down its component parts, the connections between them shifting constantly. Incredibly diverse."''
''"Regarding the Lavyrinkos... I'd probably imagined [it] as being represented as like... A cluster of tiny spheres linked together by lines..."''
ac4875d3f772b8467db7a704b84b73a959b8ca0a
92
85
2023-12-15T01:30:35Z
Azzi
8
wikitext
text/x-wiki
The Lavyrinthikos is the third lowest of [[the seven planes]] and the third attempt from the [[Ironworkers]] at recreating the physics and living conditions of [[the old world]]. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as [[Mahabaal]], the father of [[Lilith of Eskhalon]] and brother of [[Hamilcar of Kane]]. He has since gone missing, though it is unknown if he went missing while exploring the Lavyrinthikos specifically [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/842122/078-justice-and-kindness]. [[Lurina]] describes the Lavyrinkos in two discord posts as follows:
''"Lavyrinkos ("Labyrinth World") A world designed as a vast number of small demi-planes that were intended to interlink completely, creating the illusion of a discrete reality, it has now broken down its component parts, the connections between them shifting constantly. Incredibly diverse."''
''"Regarding the Lavyrinkos... I'd probably imagined [it] as being represented as like... A cluster of tiny spheres linked together by lines..."''
3564bdffeacf58472f81721a97fdc6951ac3f543
Thyellikos
0
35
82
2023-12-15T00:32:40Z
SilverHydra
7
Created page with "The Thyellikos is the fourth lowest of [[the seven planes]] and the fourth attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. The Thyellikos is described as being significantly bigger than the planes above it with the actual planets in the plane physically distant from [[the tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. [[Lurina]] de..."
wikitext
text/x-wiki
The Thyellikos is the fourth lowest of [[the seven planes]] and the fourth attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. The Thyellikos is described as being significantly bigger than the planes above it with the actual planets in the plane physically distant from [[the tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. [[Lurina]] describes the Thyellikos in a discord post as follows:
''"Thyellikos ("Storm World") A world that was originally supposed to be a giant sphere with the inhabitants living on the interior, it collapsed, resulting in a massive tempest with several pseudo-planetary bodies. Unlike higher planes, it used something closer to a normal star, which is now in an unstable state at the center."''
8332a1bceaababc715a632c20a5a1fd2facbd2c2
86
82
2023-12-15T01:26:02Z
SilverHydra
7
wikitext
text/x-wiki
The Thyellikos is the fourth lowest of [[the seven planes]] and the fourth attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. The Thyellikos is described as being significantly bigger than the planes above it with the actual planets in the plane physically distant from [[the tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. [[Lurina]] describes the Thyellikos in two discord posts as follows:
''"Thyellikos ("Storm World") A world that was originally supposed to be a giant sphere with the inhabitants living on the interior, it collapsed, resulting in a massive tempest with several pseudo-planetary bodies. Unlike higher planes, it used something closer to a normal star, which is now in an unstable state at the center."''
''" ...the Thyellikos is meant to be somewhat more shattered and to have like, a big mess of circling gas and fire at the center."''
64cb7c65e3e4300d8860a7b17cc5e78c3462f9fa
89
86
2023-12-15T01:28:40Z
SilverHydra
7
wikitext
text/x-wiki
The Thyellikos, sometimes referred to as "The Tempest", is the fourth lowest of [[the seven planes]] and the fourth attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. The Thyellikos is described as being significantly bigger than the planes above it with the actual planets in the plane physically distant from [[the tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. [[Lurina]] describes the Thyellikos in two discord posts as follows:
''"Thyellikos ("Storm World") A world that was originally supposed to be a giant sphere with the inhabitants living on the interior, it collapsed, resulting in a massive tempest with several pseudo-planetary bodies. Unlike higher planes, it used something closer to a normal star, which is now in an unstable state at the center."''
''" ...the Thyellikos is meant to be somewhat more shattered and to have like, a big mess of circling gas and fire at the center."''
88ff071867857191636066ae5030b514c2983c86
93
89
2023-12-15T01:33:25Z
SilverHydra
7
wikitext
text/x-wiki
The Thyellikos, sometimes referred to as "The Tempest", is the fourth lowest of [[the seven planes]] and the fourth attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. The Thyellikos is described as being significantly bigger than the planes above it with the actual planets in the plane physically distant from [[the tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. There is mentioned the possibility of "monsters" living in the Thyellikos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/570921/025-in-fading-image]. [[Lurina]] describes the Thyellikos in two discord posts as follows:
''"Thyellikos ("Storm World") A world that was originally supposed to be a giant sphere with the inhabitants living on the interior, it collapsed, resulting in a massive tempest with several pseudo-planetary bodies. Unlike higher planes, it used something closer to a normal star, which is now in an unstable state at the center."''
''" ...the Thyellikos is meant to be somewhat more shattered and to have like, a big mess of circling gas and fire at the center."''
447e0363688a89f7117664a6bf827e8dd283748e
96
93
2023-12-15T01:35:12Z
Azzi
8
wikitext
text/x-wiki
The Thyellikos, sometimes referred to as "The Tempest", is the fourth lowest of [[the seven planes]] and the fourth attempt from the [[Ironworkers]] at recreating the physics and living conditions of [[the old world]]. The Thyellikos is described as being significantly bigger than the planes above it with the actual planets in the plane physically distant from [[the tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. There is mentioned the possibility of "monsters" living in the Thyellikos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/570921/025-in-fading-image]. [[Lurina]] describes the Thyellikos in two discord posts as follows:
''"Thyellikos ("Storm World") A world that was originally supposed to be a giant sphere with the inhabitants living on the interior, it collapsed, resulting in a massive tempest with several pseudo-planetary bodies. Unlike higher planes, it used something closer to a normal star, which is now in an unstable state at the center."''
''" ...the Thyellikos is meant to be somewhat more shattered and to have like, a big mess of circling gas and fire at the center."''
dd9e5aedb2d7bebebde76a1a925fc0508fde9181
Diakos
0
36
83
2023-12-15T00:55:45Z
SilverHydra
7
Created page with "The Diakos is the fifth lowest of [[the seven planes]] and the fifth attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. The Diakos is notable as being the first of the planes capable of supporting life and the lowest plane with a permanent human population of a few million living in reservations [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/851634/080-justice-and-kindness][https://www.ro..."
wikitext
text/x-wiki
The Diakos is the fifth lowest of [[the seven planes]] and the fifth attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. The Diakos is notable as being the first of the planes capable of supporting life and the lowest plane with a permanent human population of a few million living in reservations [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/851634/080-justice-and-kindness][https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1072732/107-until-nothing-remains]. [[Ophelia of the Glass FIelds]] is originally from the Diakos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/668921/043-the-chosen-children].
The physical world of the Diakos is a large ring world with an area ten times larger than that of the Mimikos covered in dense alien colored jungle. The flora and fauna of the Diakos was left to evolve on its own by the ironworkers and their biology is thus not iron based [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/851634/080-justice-and-kindness]. This alien environment makes it physically difficult for residents of the Diakos to migrate to the higher planes and migrants require organ replacements [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1072732/107-until-nothing-remains].
The civilizations of the Diakos were hit hard by [[the interplanar war]]. Many atrocities were committed and the reservations on the Diakos now receive funding from the Mimikos as a form of compensation [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/773743/065-power-of-the-gods].
[[Lurina]] describes the Thyellikos in a discord post as follows:
''"Diakos ("Crown World") A world shaped like a giant ring in orbit around a Great Lamp. Mostly jungle and full of life, but everything is incredibly alien."''
4905e687e5e7323da32a901ed70d2d0136de8b68
94
83
2023-12-15T01:34:34Z
Azzi
8
wikitext
text/x-wiki
The Diakos is the fifth lowest of [[the seven planes]] and the fifth attempt from the [[Ironworkers]] at recreating the physics and living conditions of [[the old world]]. The Diakos is notable as being the first of the planes capable of supporting life and the lowest plane with a permanent human population of a few million living in reservations [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/851634/080-justice-and-kindness][https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1072732/107-until-nothing-remains]. [[Ophelia of the Glass FIelds]] is originally from the Diakos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/668921/043-the-chosen-children].
The physical world of the Diakos is a large ring world with an area ten times larger than that of the Mimikos covered in dense alien colored jungle. The flora and fauna of the Diakos was left to evolve on its own by the ironworkers and their biology is thus not iron based [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/851634/080-justice-and-kindness]. This alien environment makes it physically difficult for residents of the Diakos to migrate to the higher planes and migrants require organ replacements [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1072732/107-until-nothing-remains].
The civilizations of the Diakos were hit hard by [[the interplanar war]]. Many atrocities were committed and the reservations on the Diakos now receive funding from the Mimikos as a form of compensation [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/773743/065-power-of-the-gods].
[[Lurina]] describes the Thyellikos in a discord post as follows:
''"Diakos ("Crown World") A world shaped like a giant ring in orbit around a Great Lamp. Mostly jungle and full of life, but everything is incredibly alien."''
281e7bacc32f2b2667dc27f304c136fa69a53865
Atelikos
0
37
84
2023-12-15T01:18:37Z
SilverHydra
7
Created page with "The Atelikos is the second highest of [[the seven planes]] and the sixth attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. The Atelikos is functionally complete and supports human civilisations, although it has far less surface area then the [[Mimikos]], both due to being physically smaller and being mostly covered in ocean. The headquarters of [[the order of the universal panacea]] are located at the bottom of the nort..."
wikitext
text/x-wiki
The Atelikos is the second highest of [[the seven planes]] and the sixth attempt from [[the ironworkes]] at recreatng the physics and living conditions of [[the old world]]. The Atelikos is functionally complete and supports human civilisations, although it has far less surface area then the [[Mimikos]], both due to being physically smaller and being mostly covered in ocean. The headquarters of [[the order of the universal panacea]] are located at the bottom of the northern Innocent Sea on the Atelikos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom].
The Atelikos is covered by 97% water, leaving very little land area for settlement [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. Most of the plane is composed of ocean that supports at least some large sea creatures [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/629273/033-profane-ambition]. The land is covered by [[Skia]], or shadow grass, a species of non iron-based grass common on the lower planes [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/464907/013-everblossom]. The shape of the Atelikos is an octagonal flat plate with a lamp rotating around it [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. The flatness causes the gravity to be weaker than on the Mimikos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/629273/033-profane-ambition].
The civilizations of the Atelikos were involved in [[the interplanar war]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/773743/065-power-of-the-gods]
[[Lurina]] describes the Thyellikos in a discord post as follows:
''"Atelikos ("Unfinished World") - Shaped like plate with a tall rim. Mostly ocean, and the only world smaller than the one residing on the plane above it.''
9c11674aa6e010cc7ff546ab13322028679e0e2d
95
84
2023-12-15T01:34:43Z
Azzi
8
wikitext
text/x-wiki
The Atelikos is the second highest of [[the seven planes]] and the sixth attempt from the [[Ironworkers]] at recreating the physics and living conditions of [[the old world]]. The Atelikos is functionally complete and supports human civilisations, although it has far less surface area then the [[Mimikos]], both due to being physically smaller and being mostly covered in ocean. The headquarters of [[the order of the universal panacea]] are located at the bottom of the northern Innocent Sea on the Atelikos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom].
The Atelikos is covered by 97% water, leaving very little land area for settlement [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. Most of the plane is composed of ocean that supports at least some large sea creatures [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/629273/033-profane-ambition]. The land is covered by [[Skia]], or shadow grass, a species of non iron-based grass common on the lower planes [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/464907/013-everblossom]. The shape of the Atelikos is an octagonal flat plate with a lamp rotating around it [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. The flatness causes the gravity to be weaker than on the Mimikos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/629273/033-profane-ambition].
The civilizations of the Atelikos were involved in [[the interplanar war]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/773743/065-power-of-the-gods]
[[Lurina]] describes the Thyellikos in a discord post as follows:
''"Atelikos ("Unfinished World") - Shaped like plate with a tall rim. Mostly ocean, and the only world smaller than the one residing on the plane above it.''
cd8e29b5137033c42dfeccdd42b547d3011d686d
Ironworkers
0
38
87
2023-12-15T01:28:07Z
Azzi
8
Created page with "🔗 Ironworkers: The scholars who labored to rebuild reality while the Parties slept within the Tower of Asphodel. Masters of its use from the Imperial Era, they were still limited in their success, and only able to approximate the nature of the plane from inference and incomplete records."
wikitext
text/x-wiki
🔗
Ironworkers: The scholars who labored to rebuild reality while the Parties slept within the Tower of Asphodel. Masters of its use from the Imperial Era, they were still limited in their success, and only able to approximate the nature of the plane from inference and incomplete records.
63f8e795560a1010ce72b92e4d06d2b487d88716
Glossary
0
9
97
29
2023-12-15T01:35:47Z
Azzi
8
wikitext
text/x-wiki
''Thank you for reading. If you are struggling to keep up with some of the language used in this narrative, then this glossary may be of some assistance to you. Though certain terms will be excluded until they become pertinent for the purposes of dramatic tension, please note that this may spoil some light setting-related exposition which will be revealed later.''
----
'''Arcana'''<br>
A power created as a tool by the [[Ironworkers]] to assist in rebuilding the world. Sometimes referred to simply as the Power. Due to its complexity, practitioners (called 'arcanists') are separated into numerous disciplines, which are in turn divided into schools, though it should be noted that these categories are social constructs with no inherent value. The most pertinent:
///''Aetheromancy'': The study of utilizing arcana to manipulate space.
///''Alchemy'': The study of utilizing arcana to create novel elements and substances, traditionally in medicine.
///''Anima Scripting'': The study of utilizing arcana to manipulate the anima script, a biopolymer which determines the development of organisms. Because the subject of the discipline is proto-life rather than life outright, it is technically not a school of Biomancy, though this is the subject of some dispute within the academic community.
///''Biomancy'': The study of utilizing arcana to manipulate biology.
///''Chronomancy'': The study of utilizing arcana to manipulate time.
///''Divination'': The study of utilizing arcana to assess information and predict events.
///''Egomancy'': The study of utilizing arcana to alter the pneumaic nexus, the seat of human conciousness. Banned everywhere, save for the realms of the Uana. Archaically called Pneumancy.
///''Geomancy'': The study of utilizing arcana to manipulate earth, the landscape, and most broadly the climate.
///''Golemancy'': The study of utilizing arcana to create machines.
///''Metamancy'': The study of using the Power to manipulate itself. A precursor to Egomancy, which itself was a precursor to Neuromancy.
///''Neuromancy'': The study of utilizing arcana to manipulate the nervous system. Considered outside of Inotia and Ysara to be a mere school of Biomancy.
///''Pyromancy'': The study of utilizing arcana to create manipulate and generate energy directly, often for destructive purposes.
///''Radiamancy'': The study of using the Power to manipulate light.
///''Runescripting'': Not technically a discipline, though often treated as such. The study of engraving incantations, as runes, into various objects.
///''Thanatomancy'': The study of utilizing arcana to manipulate the process of death, or dead tissue. Archaically known as Necromancy.
///''Transmutation'': The study of utilizing arcana to change the nature of objects or matter. Most commonly used for replication.
'''Artifice'''<br>
An object or machine that requires the Power to function; for example, an arcane light. Can also be employed as a verb ('artificed') to refer to things merely created by the Power but not dependent upon it, such as construction materials and life brought about by Biomancy.
'''Assimilation Failure'''<br>
A rare side-effect of Induction with an unclear cause. Rather than discarding the memories stored within the affixed Pneuma, the mind instead fixates on or even centers them, beginning to transfer them to the conventional brain. In most cases, this has relatively minor effects, but occasionally can result in alterations to or even replacement of the sufferer's identity. The subject is taboo, with arcanists sworn to secrecy regarding it.
///''Acclimation Therapy'': A well-tested treatment program designed to minimize or even erase the effects of Assimilation Failure using a combination of medication, thought exercises, behavioral adjustments, and ultimately electrotherapy. Almost always successful to some extent if approached in good faith, though controversy exists regarding when it transitions to being little more than brainwashing.
///''Witch'': Slang term among arcanists for extreme sufferers of the condition, who fully conceive of themselves as people other than their original, physical selves. Almost all such individuals conceal this information, even from their loved ones. It's said to date from the Mourning Period, when the ailment was poorly understood. Newly-inducted arcanists appeared to simply go mad, using their new powers for wreak chaos and renouncing their former friends and family as if possessed by devils.
'''Civil Dispute'''<br>
Often called the Ikkaryonic Revolution by the young. A civil conflict within the Grand Alliance that arose based on a decision by its Old Yru Convention to treat the Ikkaryon Provisional Government, who seized the city after the rulers horrifically mismanaged it during an outbreak of disease and subsequent famine, as a criminal enemy of the state and violators of the Covenant. It ultimately led to the most serious armed conflict in 200 years, involving most of the nations of the Elysian Pangaea, before finally being brought to the end by the Summer Compromise of 1388, which granted amnesty and concessions to the rebels and their allies.
'''Collapse'''<br>
Shorthand for 'false vacuum collapse', a phenomenon of astrophysics where a lower minimum of energy in the vacuum is suddenly achieved, causing destabilization at a subatomic level which spreads at the speed of light until equilibrium is once again reached. Sometimes called 'decay' instead. Such an event was largely responsible for ending the Imperial Era and almost destroying human civilization, though there were also socioeconomic factors which radically impeded the response.
'''Covenant'''<br>
Officially the "Covenant of the Mourning Realms". A set of oaths sworn upon by 6 of the Parties of survivors following the creation of the Mimikos, designed to create a civilization that is sustainable in the long term in the new circumstances of humanity. Though largely considered unquestionable by the political mainstream, the interpretation of its tenants have become the subject of conflict, with broadly three schools of thought.
///''Fundamentalist'': The belief that the tenants of the Covenant are absolute, and must be taken literally. After centuries of ideological dominance, its hegemony has been fractured in the aftermath of the Civil Dispute.
///''Interpretist'': The belief that the tenants of the Covenant should be interpreted more liberally in accordance with the spirit in which they were written, often under the guidance of a secondary, longer document written by the Covenant's authors known as the Proclamation of Mankind's Future. An ascendant ideology.
///''Reformist'': The belief that the tenants of the Covenant are flawed due to a lack of foresight by the authors and must be amended or abolished outright. Considered an extremist ideology, although relatively popular among the young.
'''Covenant Schism'''<br>
A disagreement on the specifics of some of the Covenant's tenants between two Parties, the Lluatec and the Uana, and the other six. The result was that they did not settle the Mimikos, and follow a significantly different, and much briefer, version of the Covenant. Attempts have been made to mend this divide for centuries, with limited success.
'''Dementia'''<br>
Shorthand for associative collapse-type dementia. A degenerative mental condition that is increasingly likely to occur in those older than 500, and especially 600 years. It is currently believed to be untreatable. With the exception of accidents, it is the most common cause of death in the civilized world.
'''Duumvirate'''<br>
Shorthand for the Lluatec-Uana Duumvirate. A loose federation that oversees most of the states established by the Lluatec and Uana Parties, placing it in vague opposition to the Grand Alliance, though no hostilities have ever occurred. It dominates the Empyrean almost completely.
'''Era'''<br>
A popular means of separating human history, based on broad trends in governmental development and the scope of human artifice. Scholars generally observe five distinct eras.
///''Primeval'': The age between the earliest human settlements and the advent of complex societal organization and subsequent consolidation of power that would come to be defined as civilization. Comprised of small, relatively isolated communities.
///''Old Kingdoms'': The earliest age of civilization, characterized by local centralization the beginnings of specialized labor, but limited trade and simple government still concentrated in fertile regions.
///''New Kingdoms'': The first age conceived of as culturally sophisticated, characterized by much greater centralization and high levels of specialization, trade, and complex bureaucratic government. Civilization has now spread across the world, but remains fractious.
///''Imperial'': The apex of civilization before the collapse of the old world, characterized by a smaller number of extremely complex and deeply interconnected states which largely no longer required human labor to function. The only era in which settlements beyond the Earth were constructed.
///''Covenant/Mourning'': The contemporary era, for which disagreement on the name exists.
'''Empyrean'''<br>
The area of space both physically and extra-planarly above the Mimikos, largely unused by the Ironworkers. It is home to a variety of experimental structures, many of which are habitable by humans, though to varying degrees of hospitality.
'''Epoch''' <br>
An alternative means of categorizing broad ages of history from a more anthropological perspective, based on the dominant 'tool' utilized by human beings. Divided into four - Bone, Fire, Iron, and Arcane.
'''Exodus, The'''<br>
The event wherein the eight Parties, following their awakening from their slumber within the Tower of Asphodel, were incarnated into either the Mimikos of the Empyrean.
'''Generation'''<br>
An informal label given to individuals based on the century of their birth that has become a socially acceptable way to inquire as to someones approximate age. In the contemporary social climate, the 14th and 13th generations are considered young, the 12th and 11th mature, and the 10th and beyond elderly. This excludes the most recent generation, the 15th, of whom the eldest are only 9 years old.
'''Grand Alliance'''<br>
Shorthand for the Grand Alliance of the Mourning Realms. A single pan-national government under which the nations of the Mimikos united following the virtual elimination of scarcity and the period of universal good relations and heightened diplomatic spirit that marked the end of the Interplanar Colonization Period. Governed by the Old Yru Convention, a council of elected leaders, bureaucrats and heads of state.
'''Great Lamp'''<br>
An artificial sun created by the Ironworkers to service the Mimikos. It crosses the sky each day by means of a giant mechanical edifice, with an angle that changes depending on the season.
'''Great Work'''<br>
A term dating back to ancient alchemy with a vague and often contextually-dependent meaning, but classically in reference to the pursuit of immortality or great scholarly achievements in service of that goal. In some traditions, the Great Work is also a spiritual transformation; the evolution of the self, or man's collective self, into a higher order of being.
'''Incantation'''<br>
The words used to invoke a certain effect using the Power. Largely mathematical in nature, they are spoken in Eme, an ancient relative of modern Ysaran that has almost nothing in common with the contemporary language. They require extremely precise pronunciation and mathematics, or will fail - sometimes with spectacular consequences.
'''Index'''<br>
The source of the Power. An extra-dimensional machine grafted to a Pneuma, allowing it to physically interact with the Higher Planes, moving energy and matter in manners that transcend the mundane. Each Index is unique, and there are a finite number (1,073,741,824) corresponding to different 'routes' by which the Higher Planes can be accessed, often possessing their own subtle traits which affect the casting of their bearer. If fire was the tool by which man began his dominance of nature, then an Index can be considered the terminus of that long quest; all that separates him from divine power is mastery.
'''Induction'''<br>
Sometimes called an 'Initiation Ceremony.' A process which is required for a person to use the Power in the overwhelming majority of circumstances due to the trauma caused to the Pneuma as a result of the severance process designed by the Ironworkers. One of the immeasurable number of Pneuma stored within the Tower of Asphodel from those not fortunate enough to find direct shelter is affixed to the damaged root, allowing the subject to bear an Index. As the Pneuma is not a thing of flesh and blood, this addition is normally ignored by rest of the brain, the information within discarded and overwritten like a fleeting dream.
'''Iron'''<br>
{{main|Iron}}<br>
A substance of incredible power that was harnessed in the New Kingdoms Era, and became the backbone of civilization, enabling the impossible glories of the Imperial Era. As it was used to construct the Tower of Asphodel and preserve reality, it can no longer truly exist in the material world, in much the same way that a box cannot contain itself. However, there are some minor exceptions.
///False Iron: A shadow, or perhaps a simulacrum of iron, taken from the Tower of Asphodel as it exists in mundane reality. It is found underground in veins all over the Mimikos and the Lower Planes, and its connection to the Tower can never truly be severed.
///True Iron: Found only within the bodies of human beings in tiny quantities as a matter of necessity. It is the product of a stable paradox. It becomes False Iron when it leaves the body, and vice-versa.
'''Ironworkers'''<br>
{{main|Ironworkers}}<br>
The scholars who labored to rebuild reality while the Parties slept within the Tower of Asphodel. Masters of its use from the Imperial Era, they were still limited in their success, and only able to approximate the nature of the plane from inference and incomplete records.
'''Logic Bridge'''<br>
{{main|Logic Bridge}}<br>
An interfacing tool used to connect the human mind to either other minds or objects via exercising the iron of the pneumaic nexus, and its connection to the Tower of Asphodel. In its most basic form, it consists of a piece of False Iron, a switch, and two polarized magnets. Can be used directly to facilitate awkward pseudo-telepathy, but a logic engine is required for translating more complex concepts.
'''Logic Engine'''<br>
{{main|Logic Engine}}<br>
A machine used to perform reasoning. Most, but not all, interface with humans via logic bridges. Though logic engines can take many forms, the most common is the oscillatory logic engine, which utilizes microvibrations and extremely delicate machinery to store and process information, along with hydraulic power both to maintain its core tone and physically operate. Though much slower than minds and the iron-based logic engines of old, they are capable of incredible feats of parallel processing, rendering them able to perform mathematics and analysis beyond the scope of human ability.
///''Echo Maze'': Properly called an Echo Labyrinth. A cube which stores information in its incredibly fine internal indentures. When sound passes through it, a logic engine can process the output as extremely specific information. The most common form of data storage in the present day by far.
'''Luxury Debt'''<br>
A concept that has replaced currency since the advent of mass-duplication arcana destroyed the viability of a scarcity and labor-driven economy. Everyone receives trivially produced goods for free, but to procure something that is either abstract or cannot be duplicated and requires human labor, they must go into debt with the community. This must then be repaid either by community service, or producing something else of value to pass on the debt. Class disparity still exists, however, as it remains possible to amass disproportionate amounts of non-monetary resources for oneself or a company.
'''Mimikos, The'''<br>
The final attempt of the Ironworkers to create a satisfactory replacement for the old world, and the home of the vast majority of living humans. It informally refers to both the structure itself, and the plane in which it was constructed. It is shaped like a giant, incredibly thick bowl, and derives its gravity from a combination of mass, horizontal, and vertical movement. It has three major landmasses.
///''Elysian Pangaea, The'': A massive, vaguely crescent-shaped continent that comprises over 80% of the surface landmass. The coasts of the ocean within the crescent, the Mnemonic Sea, are the center of international civilization.
///''Inotian Archipelago'': A large group of islands upon which the Inotian Party mainly settled. Though they comprise only around 1% of the land in the world, they are densely populated.
///''Orphaned Continent, The'': A continent in the far north, famed for being relatively untamed.
'''Party'''<br>
One of the eight groups that successfully took refuge within the Tower of Aspodel during the collapse of Imperial Era civilization. Each represents a distinct ethnic and cultural group. Some have 'legitimate' governments that can trace their leadership back to the Exodus, while others are the subject of more complicated divisions. The eight Parties are: The Ysaran, Inotian, Mekhian, Saoic, Rhunbardic, Viraaki, Lluateci, and Uana.
///''Ysaran'': Considered the most politically influential party in the Grand Alliance, it originally settled the coasts of the Mnemonic Sea before splintering almost immediately due to a lack of clear leadership. Today, it is largely reunified under the Ysaran Accord, a democratic federation of nations, though the culturally distinct Asharomi cities and the nation of Ikkaryon remain separate. Its people generally have strong features and light-to-medium brown complexions, with a minority having darker brown. Ysaran (specifically, Towerward Ysaran) serves as the de-facto lingua franca of the modern world. They are famed for their grand architecture and their traditions of runework and Golemancy, with Ysaran mathematicians said to be the greatest in the world, though the Uana would disagree.
///''Inotian'': Inversely, considered the most culturally influential party due to its history of seafaring and colonization. Though the most direct continuity of its pre-collapse government founded the Republic of Irenca on the Orphaned Continent, the majority of the party splintered to instead erect city-states on the islands of what is today called the Inotian Archipelago. Its people generally have very strong features and brassy complexions, with a minority being paler. They have a well-established scholarly tradition, with Inotian successfully outcome Mekhian as the language of science, and possess a particular bent towards philosophy. The greatest Diviners in the world, the Sibyls, are Inotian, though they are also responsible for the less prestigious discipline of Metamancy.
///''Mekhian'': Historically non-interventionist yet arguably the most powerful party in an explicit, military-industrial sense, the Mekhians are the only group to have experienced no meaningful political fractures since the settling of the Mimikos. Their state, though heavily federated, consists of the entirety of the non-expatriate and non-expatriate descended population and spans almost the entire civilized east. Its people generally have medium to dark brown complexions and soft features. They also have a strong scholarly tradition, but with a more pragmatic character, and excel at civic management. During the Mourning Period, it was the global center of all arcane research, and its signature disciplines are Geomancy and Thanatomancy.
///''Saoic'': Descended from a group of cultures which developed in partial isolation from the other Covenant signatories in the old world, the Saoic party settled the west of the continent, and today is divided into the Saoic Arcanoncracy, a bureaucratic dictatorship that is the last in the world governed by arcanists, and the much more liberal Dai League, comprised of various small nations with unique cultures. Its people have amber-to-pale complexions and very soft features. More than any other, Saoic culture has deeply internalized its grief for the old world, having an often solemn and mournful character that shuns excess. Despite this, its artistic and literary traditions are the most influential in the world. Ironically considering the government of the Arcanocracy, its accomplishments are more in conventional technology than arcana - though it is responsible for the artificing tradition of Alchemy and the obscure discipline of Radiamancy.
///''Rhunbardic'': A warlike party which settled the plateau and steppes in the center of the continent, with the exception of the exile-realms of Umbrica and Turaggoth on the Orphaned Continent. Once, the Rhunbardic Empire ruled half of the Mourning Realms, but it was defeated at the climax of the Tricenturial War and became the much smaller Rhunbardic Kingdom, the last remaining monarchy (albeit a constitutional one) in the world. Its people have pale or sometimes very pale complexions, and features that vary from soft to mixed. Almost every aspect of Rhunbardic culture is militant - cities resemble fortresses, and roles for individuals are often strict and pre-defined. In terms of the Power, it is most known for its Pyromancy, though the much more esoteric tradition of Chronomancy is also found here.
///''Viraaki'': A party that is widely considered a late-bloomer, having been weak and politically irrelevant for almost a millenia since it settled the jungles and mountains of the south, but now rapidly increasing its influence. Its political structure is unusual, with its disunited realms swearing technical fealty to its capital city-state, Sacred Vir, despite it holding very little practical power. By far the most powerful of these realms is the Exarchate of Palaat, a young nation that has grown rapidly since its founding during the Rhunbardic occupation. Its people have medium to dark brown complexions, but a very wide range of features. It is extremely famed for its Biomancy, which it even incorporates into architecture, and has begun to challenge Inotia and Sao for their cultural and artistic influence.
///''Lluateci'': One of the two Duumvirate parties based in the Empyrean, they rejected the Covenant of the Mourning Realms and chose to settle smaller structures built by the Ironworkers to avoid open conflict, before ultimately consolidating into the six nations that exist today. They generally have soft features and medium to dark red-tinted complexions. Lluateci culture is hyper-liberal to the point that it can appear almost anarchic to outsiders, with tolerance for practices that would be outrageous elsewhere. Their signature discipline is Transmutation, a necessity for surviving in the void of space, though they are also known for their Arcane Engineering.
///''Uana'': The second of the two Duumvirate parties based in the Empyrean, though in their case they remained mostly unified. A isolationist culture, the Uana scorn their bodies and the physical reality of the Mimikos as much as possible, choosing instead to interact through logic bridges; a device of their invention. Superficially, their structures appear utterly mercenary - little more than floating blocks of concrete with incredibly basic living quarters. Yet those few who have visited them describe their society within the artificed space as being an attempt to emulate the old world to a greater degree of fidelity than anywhere else. They are masters of Aetheromancy, and it is said they can bend space almost as well as the Iron Princes of the old world.
'''Period'''<br>
A series of sub-classifications for periods of history within the current, post-Imperial era.
///''Mourning Period'': A time of low-population and great cultural grief for the old world, dominated by the survivors of the event, when civilization was briefly much more primitive than prior ages, mankind not yet having mastered the Power as a replacement for iron.
///''First Resurrection'': A renaissance characterized by a return to urban, centralized society and a resurgence in academic study, especially concerning arcana, resulting in the return of various amenities thought no longer possible without iron. A fleeting return of Imperial Era culture also occurs.
///''Interluminary Strife'': A brief but calamitous period brought on by damage to the Great Lamp, depriving the world of sunlight.
///''Hollow Years'': A dark age of slow recovery from the mass deaths of the previous period.
///''Second Resurrection'': A renewed renaissance, though with a more culturally conservative character, characterized by the emergence of Covenant fundamentalism. This is considered to be the earliest era that remains in living memory outside of the anomalistically elderly.
///''Tricenturial War'': A lengthy period of intermittent warfare between the Rhunbardic Empire and everyone else. Not actually three centuries long, despite the name.
///''Planar Colonization Period'': A period of interest in cross-planar colonization and settlement, as well as interaction (and, ultimately, tension and conflict) with the native inhabitants.
///''Unending Peace, The'': The contemporary age following the creation of the Grand Alliance.
'''Plane'''<br>
An area of dimensionally and ruleset-consistent reality. Though the term theoretically applies to the millions of possible facets of the dimensional landscape in the universe, the more common use is in reference to the planes of the Tower of Asphodel, which all attempt at approximating the nature of mankind's long-gone original reality. A phrase often used to describe the latter in totality is the Remaining World.
'''Pneuma'''<br>
An informal shorthand for the aspect of human brain which operates extradimensionally, a phenomena discovered at the end of the Imperial Era. Though originally arising entirely as a byproduct of biology,iIn the modern day, the process by which the Pneuma is intergrated with the mind must be facilitated artificially with an engineered organ known as the Pneumaic Nexus, and new ones pruned to prevent them from reconnecting with those belonging to their Seed.
'''Political Affiliation'''<br>
Following the end of scarcity and the creation of the Grand Alliance, old political ideologies based around its management became inapplicable, becoming replaced by new variants focused on how society should encourage and reward participation and distribute political power. Often paired with the attitudes to the covenant listed above. For example, the political platform of the Grand Alliance is Humanist-Fundamentalist.
///''Humanism'': The belief that the state should serve every human need it can accommodate without substantial cost unconditionally (generally considered to include unlimited food of reasonable quality, clothes, basic housing and entertainment, education, and essential medical care) but that beyond that internal disparity is acceptable and that luxury and political power should be afforded only as rewards for communal participation, defined broadly as the creation or facilitation of luxuries, or the fulfillment of the essential needs of the state. Considered by its advocates to be the only value system that properly reflects the tenants of the Covenant.
///''Meritism'': The belief that the state should be obligated to provide only the barest essentials for human survival, and that all else must be earned either through either service to the community or personal entrepreneurship. It is conceptually rooted in the idea that human beings only thrive when forced into self-sufficiency, and that to offer too much for nothing, even when abundance permits it, fosters decadence. Many, however, accuse its advocates of more selfish motivations.
///''Paritism'': The belief that the state should offer the people unconditional equality in the distribution of resources, regardless of contribution or personal background. Extremely popular among the young, who have suffered the brunt of widening generational inequality, but considered fringe outside of the global east.
///''Idealism'': Sometimes defined as a subset of Meritism. The belief that the state should reward people neither universally nor on the basis of contribution, but rather by their degree of compliance with a set of national values or "ideals", usually moral in nature, but also often tied up in nationalism and religion. Extremists of this ideology are considered politically toxic and referred to as Iconists.
'''Prosognostic Event/Contact Paradox'''<br>
{{main|Contact Paradox}}
Two potential results of individuals born from the same seed from the Tower of Asphodel coming into contact with one another. The former, caused by merely witnessing a face that matches own self-conception, leads to severe seizure-like symptoms, but this is merely a defense mechanism against the latter. If the individuals touch, the iron in both of their bodies and the surrounding area is obliterated by a temporal paradox, causing the death of both and any bystanders within a few meters.
'''Refractor Rifle'''<br>
A type of firearm which propels pure light energy through a series of filters which can be lowered at the discretion of the user to varying results, ranging from stunning organic targets (though not entirely safely) to melting anything up to and including metal and stone. Developed during the Great Interplanar War, it is beginning to show its age as technology, with armors capable of deflecting its shots at even the most potent settings supposedly in development. Many wait with baited breath for the next leap in non-arcane weapons technology.
'''Seed'''<br>
The source body, stored within the Tower of Asphodel, from which a person is derived on a cellular level. They are derived from the original members of each of the eight Parties, coming to a total of around 100,000 in aggregate.
'''Tower of Asphodel'''<br>
{{main|Tower of Asphodel}}
The structure created by the Ironworkers at the end of the Imperial Era to provide refuge to those who could obtain it, and later to act as a foundation for the planes they would create. It is visible in the sky at all times, though it exists only partially as a physical object.
fe3b7ff8a7df59ec4844edb95c02f6b67e9611dd
Talk:Main Page
1
39
98
2023-12-15T02:54:07Z
Systemzero
2
/* Getting wiki off the ground */ new section
wikitext
text/x-wiki
== Getting wiki off the ground ==
My minimal wiki experience is with editing content on pre existing wikis. Since [https://wiki.whentheycry.org/wiki/Main_Page When They Cry Wiki] is the Miraheze I'm most familiar with, I've been cribbing code from there. The interwiki prefix I've been using for XML import is <code>whentheycrywiki</code>.
=== Technical needs ===
* Enable [https://www.mediawiki.org/wiki/Help:Subpages subpages] to fix the CSS templates for the reference list and main article templates
* Figure out how to mark for spoilers so that first time readers can still use this wiki as a reference. Possibly organize information by chapter?
* Character page template
* Formalizing stylistic conventions and formatting in general (trying very hard to match the capitalization in text rn)
* Page categories
=== Ideas for wiki expansion ===
* Longer main articles for glossary entries
* Create spoiler marked timeline
* Link to [https://sekhmet.fun/ sekhmet.fun]
* Chapter or story arc summaries?
* Page for playwright & director rules
* Page(s) for red and purple text
What kinds of things does everybody want to see on the wiki?
[[User:Systemzero|Systemzero]] ([[User talk:Systemzero|talk]]) 02:54, 15 December 2023 (UTC)
439981ccee72c11e309e59cd43aeb7154be29eae
100
98
2023-12-15T23:27:55Z
SilverHydra
7
wikitext
text/x-wiki
== Getting wiki off the ground ==
My minimal wiki experience is with editing content on pre existing wikis. Since [https://wiki.whentheycry.org/wiki/Main_Page When They Cry Wiki] is the Miraheze I'm most familiar with, I've been cribbing code from there. The interwiki prefix I've been using for XML import is <code>whentheycrywiki</code>.
=== Technical needs ===
* Enable [https://www.mediawiki.org/wiki/Help:Subpages subpages] to fix the CSS templates for the reference list and main article templates
* Figure out how to mark for spoilers so that first time readers can still use this wiki as a reference. Possibly organize information by chapter?
* Character page template
* Formalizing stylistic conventions and formatting in general (trying very hard to match the capitalization in text rn)
* Page categories
=== Ideas for wiki expansion ===
* Longer main articles for glossary entries
* Create spoiler marked timeline
* Link to [https://sekhmet.fun/ sekhmet.fun]
* Chapter or story arc summaries?
* Page for playwright & director rules
* Page(s) for red and purple text
What kinds of things does everybody want to see on the wiki?
[[User:Systemzero|Systemzero]] ([[User talk:Systemzero|talk]]) 02:54, 15 December 2023 (UTC)
=== Thoughts on priorities ===
I don't have any experience editing wikis, but it seems to me that there's two main priorities:
* Figuring out a spoiler warning system
* Making a template for the character pages
For the spoilers we could have a tiered spoiler system, marking some pages with "mild spoilers" and others with "major spoilers". We could maybe even mark each spoiler warning with the chapter number that a reader would need to reach before reading the article, though that seems like a lot of work.
Another way would be to design a tiered spoiler warning system into the page layouts themselves. For example, the character pages could start with basic information, character description and a biography. Most of that would be light or medium spoilers. Then there could be a "in the story" section that's marked with more heavy spoilers. Essentialy, the goal would be to make spoilers more sever further down in an article and mark the transition points clearly. If certain characters have major spoilers as part of their basic biography then thos could be saved for the very bottom. So Kuroka would for example not be mentioned and the entire Utsushikome biography would be written as if she didn't exist, but then all the way at the bottom there would be a revised biography.
This kind of problem is especially potent for the character pages, which is why I see these two priorities as potentially intertwined. But as I said I have no experience, and I'm curious to know how spoilers are handled on other wikis, like the When They Cry wiki for example?
--[[User:SilverHydra|SilverHydra]] ([[User talk:SilverHydra|talk]]) 23:27, 15 December 2023 (UTC)
6d04c31e37de4c7a2267a39acd3e408518c5b7bf
101
100
2023-12-16T01:20:17Z
Azzi
8
/* Possible Category Structure */ new section
wikitext
text/x-wiki
== Getting wiki off the ground ==
My minimal wiki experience is with editing content on pre existing wikis. Since [https://wiki.whentheycry.org/wiki/Main_Page When They Cry Wiki] is the Miraheze I'm most familiar with, I've been cribbing code from there. The interwiki prefix I've been using for XML import is <code>whentheycrywiki</code>.
=== Technical needs ===
* Enable [https://www.mediawiki.org/wiki/Help:Subpages subpages] to fix the CSS templates for the reference list and main article templates
* Figure out how to mark for spoilers so that first time readers can still use this wiki as a reference. Possibly organize information by chapter?
* Character page template
* Formalizing stylistic conventions and formatting in general (trying very hard to match the capitalization in text rn)
* Page categories
=== Ideas for wiki expansion ===
* Longer main articles for glossary entries
* Create spoiler marked timeline
* Link to [https://sekhmet.fun/ sekhmet.fun]
* Chapter or story arc summaries?
* Page for playwright & director rules
* Page(s) for red and purple text
What kinds of things does everybody want to see on the wiki?
[[User:Systemzero|Systemzero]] ([[User talk:Systemzero|talk]]) 02:54, 15 December 2023 (UTC)
=== Thoughts on priorities ===
I don't have any experience editing wikis, but it seems to me that there's two main priorities:
* Figuring out a spoiler warning system
* Making a template for the character pages
For the spoilers we could have a tiered spoiler system, marking some pages with "mild spoilers" and others with "major spoilers". We could maybe even mark each spoiler warning with the chapter number that a reader would need to reach before reading the article, though that seems like a lot of work.
Another way would be to design a tiered spoiler warning system into the page layouts themselves. For example, the character pages could start with basic information, character description and a biography. Most of that would be light or medium spoilers. Then there could be a "in the story" section that's marked with more heavy spoilers. Essentialy, the goal would be to make spoilers more sever further down in an article and mark the transition points clearly. If certain characters have major spoilers as part of their basic biography then thos could be saved for the very bottom. So Kuroka would for example not be mentioned and the entire Utsushikome biography would be written as if she didn't exist, but then all the way at the bottom there would be a revised biography.
This kind of problem is especially potent for the character pages, which is why I see these two priorities as potentially intertwined. But as I said I have no experience, and I'm curious to know how spoilers are handled on other wikis, like the When They Cry wiki for example?
--[[User:SilverHydra|SilverHydra]] ([[User talk:SilverHydra|talk]]) 23:27, 15 December 2023 (UTC)
== Possible Category Structure ==
Categories - Kind of basing this off of the When They Cry Wiki
<big>Arcs</big><br>
(Pages under Arcs)<br>
-> Eternity<br>
-> Mankind's Shining Future<br>
-> Pilgrimage to the Deep<br>
The Arc pages will have two primary sections, the first is an extremely barebones summary of what happens, and the 2nd is a list of new characters, locations, and concepts introduced.
<big>Characters</big><br>
(Pages under Characters)<br>
-> Groups of characters such as the Exemplary Acolytes Class<br>
(Pages under Exemplary Acolytes Class)<br>
-> Utsushikome<br>
-> Ran<br>
-> Etc<br>
-> Order of the Universal Panacea <br>
-> Zeno<br>
-> Etc<br>
-> Side Characters (one page with all side characters listed, no subpages)<br>
<big>Murder Speculation<big><br>
-> Part 1 (A page with all red rules at the top, and then a list of links to individual locked room mysteries and other mysterious deaths)<br>
-> Character's death<br>
<big>Worldbuilding</big><br>
-> Concepts<br>
-> Arcana<br>
-> Locations<br>
-> Mimikos<br>
-> Old Yru<br>
Pretty self explanatory.
<big>Open Questions</big><br>
-> Eternity<br>
-> Mankind's Shining Future<br>
A community space where people can list open questions from Arcs (such as, in Mankind's Shining Future Utsushikome states that she somewhat knew Ptolema before attending class together 'because of their families'. This is literally never elaborated upon.) and then, in some kind of collapsible spoiler box, provide speculative answers.
76417a3a3a317025f556e5baedb958507cf63d0e
Talk:Main Page
1
39
102
101
2023-12-16T01:20:53Z
Azzi
8
/* Possible Category Structure */
wikitext
text/x-wiki
== Getting wiki off the ground ==
My minimal wiki experience is with editing content on pre existing wikis. Since [https://wiki.whentheycry.org/wiki/Main_Page When They Cry Wiki] is the Miraheze I'm most familiar with, I've been cribbing code from there. The interwiki prefix I've been using for XML import is <code>whentheycrywiki</code>.
=== Technical needs ===
* Enable [https://www.mediawiki.org/wiki/Help:Subpages subpages] to fix the CSS templates for the reference list and main article templates
* Figure out how to mark for spoilers so that first time readers can still use this wiki as a reference. Possibly organize information by chapter?
* Character page template
* Formalizing stylistic conventions and formatting in general (trying very hard to match the capitalization in text rn)
* Page categories
=== Ideas for wiki expansion ===
* Longer main articles for glossary entries
* Create spoiler marked timeline
* Link to [https://sekhmet.fun/ sekhmet.fun]
* Chapter or story arc summaries?
* Page for playwright & director rules
* Page(s) for red and purple text
What kinds of things does everybody want to see on the wiki?
[[User:Systemzero|Systemzero]] ([[User talk:Systemzero|talk]]) 02:54, 15 December 2023 (UTC)
=== Thoughts on priorities ===
I don't have any experience editing wikis, but it seems to me that there's two main priorities:
* Figuring out a spoiler warning system
* Making a template for the character pages
For the spoilers we could have a tiered spoiler system, marking some pages with "mild spoilers" and others with "major spoilers". We could maybe even mark each spoiler warning with the chapter number that a reader would need to reach before reading the article, though that seems like a lot of work.
Another way would be to design a tiered spoiler warning system into the page layouts themselves. For example, the character pages could start with basic information, character description and a biography. Most of that would be light or medium spoilers. Then there could be a "in the story" section that's marked with more heavy spoilers. Essentialy, the goal would be to make spoilers more sever further down in an article and mark the transition points clearly. If certain characters have major spoilers as part of their basic biography then thos could be saved for the very bottom. So Kuroka would for example not be mentioned and the entire Utsushikome biography would be written as if she didn't exist, but then all the way at the bottom there would be a revised biography.
This kind of problem is especially potent for the character pages, which is why I see these two priorities as potentially intertwined. But as I said I have no experience, and I'm curious to know how spoilers are handled on other wikis, like the When They Cry wiki for example?
--[[User:SilverHydra|SilverHydra]] ([[User talk:SilverHydra|talk]]) 23:27, 15 December 2023 (UTC)
== Possible Category Structure ==
Categories - Kind of basing this off of the When They Cry Wiki
<big>Arcs</big><br>
(Pages under Arcs)<br>
-> Eternity<br>
-> Mankind's Shining Future<br>
-> Pilgrimage to the Deep<br>
The Arc pages will have two primary sections, the first is an extremely barebones summary of what happens, and the 2nd is a list of new characters, locations, and concepts introduced.
<big>Characters</big><br>
(Pages under Characters)<br>
-> Groups of characters such as the Exemplary Acolytes Class<br>
(Pages under Exemplary Acolytes Class)<br>
-> Utsushikome<br>
-> Ran<br>
-> Etc<br>
-> Order of the Universal Panacea <br>
-> Zeno<br>
-> Etc<br>
-> Side Characters (one page with all side characters listed, no subpages)<br>
<big>Murder Speculation</big><br>
-> Part 1 (A page with all red rules at the top, and then a list of links to individual locked room mysteries and other mysterious deaths)<br>
-> Character's death<br>
<big>Worldbuilding</big><br>
-> Concepts<br>
-> Arcana<br>
-> Locations<br>
-> Mimikos<br>
-> Old Yru<br>
Pretty self explanatory.
<big>Open Questions</big><br>
-> Eternity<br>
-> Mankind's Shining Future<br>
A community space where people can list open questions from Arcs (such as, in Mankind's Shining Future Utsushikome states that she somewhat knew Ptolema before attending class together 'because of their families'. This is literally never elaborated upon.) and then, in some kind of collapsible spoiler box, provide speculative answers.
48b1be3d50ac0b2861d202565dd1bc741b22244f
103
102
2023-12-16T01:25:10Z
Azzi
8
/* Possible Category Structure */
wikitext
text/x-wiki
== Getting wiki off the ground ==
My minimal wiki experience is with editing content on pre existing wikis. Since [https://wiki.whentheycry.org/wiki/Main_Page When They Cry Wiki] is the Miraheze I'm most familiar with, I've been cribbing code from there. The interwiki prefix I've been using for XML import is <code>whentheycrywiki</code>.
=== Technical needs ===
* Enable [https://www.mediawiki.org/wiki/Help:Subpages subpages] to fix the CSS templates for the reference list and main article templates
* Figure out how to mark for spoilers so that first time readers can still use this wiki as a reference. Possibly organize information by chapter?
* Character page template
* Formalizing stylistic conventions and formatting in general (trying very hard to match the capitalization in text rn)
* Page categories
=== Ideas for wiki expansion ===
* Longer main articles for glossary entries
* Create spoiler marked timeline
* Link to [https://sekhmet.fun/ sekhmet.fun]
* Chapter or story arc summaries?
* Page for playwright & director rules
* Page(s) for red and purple text
What kinds of things does everybody want to see on the wiki?
[[User:Systemzero|Systemzero]] ([[User talk:Systemzero|talk]]) 02:54, 15 December 2023 (UTC)
=== Thoughts on priorities ===
I don't have any experience editing wikis, but it seems to me that there's two main priorities:
* Figuring out a spoiler warning system
* Making a template for the character pages
For the spoilers we could have a tiered spoiler system, marking some pages with "mild spoilers" and others with "major spoilers". We could maybe even mark each spoiler warning with the chapter number that a reader would need to reach before reading the article, though that seems like a lot of work.
Another way would be to design a tiered spoiler warning system into the page layouts themselves. For example, the character pages could start with basic information, character description and a biography. Most of that would be light or medium spoilers. Then there could be a "in the story" section that's marked with more heavy spoilers. Essentialy, the goal would be to make spoilers more sever further down in an article and mark the transition points clearly. If certain characters have major spoilers as part of their basic biography then thos could be saved for the very bottom. So Kuroka would for example not be mentioned and the entire Utsushikome biography would be written as if she didn't exist, but then all the way at the bottom there would be a revised biography.
This kind of problem is especially potent for the character pages, which is why I see these two priorities as potentially intertwined. But as I said I have no experience, and I'm curious to know how spoilers are handled on other wikis, like the When They Cry wiki for example?
--[[User:SilverHydra|SilverHydra]] ([[User talk:SilverHydra|talk]]) 23:27, 15 December 2023 (UTC)
== Possible Category Structure ==
Categories - Kind of basing this off of the When They Cry Wiki
<big>Arcs</big><br>
(Pages under Arcs)<br>
-> Eternity<br>
-> Mankind's Shining Future<br>
-> Pilgrimage to the Deep<br>
The Arc pages will have two primary sections, the first is an extremely barebones summary of what happens, and the 2nd is a list of new characters, locations, and concepts introduced.
<big>Characters</big><br>
(Pages under Characters)<br>
-> Groups of characters such as the Exemplary Acolytes Class<br>
(Pages under Exemplary Acolytes Class)<br>
'' -> Utsushikome<br>
-> Ran<br>
-> Etc<br>''
-> Order of the Universal Panacea <br>
(Pages under Order of the Universal Panacea)<br>
'' -> Zeno<br>
-> Etc<br>''
-> Side Characters (one page with all side characters listed, no subpages)<br>
<big>Murder Speculation</big><br>
-> Part 1 (A page with all red rules at the top, and then a list of links to individual locked room mysteries and other mysterious deaths)<br>
-> Character's death<br>
<big>Worldbuilding</big><br>
-> Concepts<br>
-> Arcana<br>
-> Locations<br>
-> Mimikos<br>
-> Old Yru<br>
Pretty self explanatory.
<big>Open Questions</big><br>
-> Eternity<br>
-> Mankind's Shining Future<br>
A community space where people can list open questions from Arcs (such as, in Mankind's Shining Future Utsushikome states that she somewhat knew Ptolema before attending class together 'because of their families'. This is literally never elaborated upon.) and then, in some kind of collapsible spoiler box, provide speculative answers.
1708d91cde3ca50abfb84b9bca9a50da178b8310
Linos of Melanthos
0
40
104
2023-12-16T03:39:07Z
Jjjqance
5
Created page with "Linos of Melanthos is a member of the inner circle of the [[Order of the Universal Panacea]]. {| class="wikitable" style="float: right" ! colspan="2" | {{{subj|Linos of Melanthos}}} |- ! colspan="2" {{#if: {{{img|}}}||style="display: none"}} | [[File:{{{img|Linos.jpg}}}|200px]] |- {{#if: {{{img|}}}||style="display: none"}} | colspan="2" | <small>{{{capt|Linos of Melanthos}}}</small> |- ! colspan="2" | Attendee Information |- ! Role | {{{role|Order Master}}} |- ! Party |..."
wikitext
text/x-wiki
Linos of Melanthos is a member of the inner circle of the [[Order of the Universal Panacea]].
{| class="wikitable" style="float: right"
! colspan="2" | {{{subj|Linos of Melanthos}}}
|-
! colspan="2" {{#if: {{{img|}}}||style="display: none"}} | [[File:{{{img|Linos.jpg}}}|200px]]
|- {{#if: {{{img|}}}||style="display: none"}}
| colspan="2" | <small>{{{capt|Linos of Melanthos}}}</small>
|-
! colspan="2" | Attendee Information
|-
! Role
| {{{role|Order Master}}}
|-
! Party
| {{{party|Inotian}}}
|-
! Height
| {{{height|5'6}}}
|- {{#if: {{{died|}}}||style="display: none"}}
! Blood Type
| {{{bloodtype|B-}}}
|-
! Resistances
| {{{resistances|AN}}}
|-
! Culinary Notes
| {{{culinary|Dislikes shellfish}}}
|-
! Qualifications
| {{{qual|Grandmaster of Transmutive Healing by Grand Alliance Accolade<br>
First Chair Professor at the Altaian Institute for Arcane Transmutation and Synthesis}}}
|-
! colspan="2" | Personal Information
|-
! Relations
| {{{relations|[[Theodoros of Melanthos]]}}}
|-
! Aliases
| {{{aliases|Linos the Deceiver}}}
|}
67ca269d4c59ada0501de06202b29f52a8b26daf
105
104
2023-12-16T03:44:37Z
98.111.206.120
0
wikitext
text/x-wiki
Linos of Melanthos is a member of the inner circle of the [[Order of the Universal Panacea]].
{| class="wikitable" style="float: right"
! colspan="2" | {{{subj|Linos of Melanthos}}}
|-
! colspan="2" {{#if: {{{img|}}}||style="display: none"}} | [[File:{{{img|Linos.jpg}}}|200px]]
|- {{#if: {{{img|}}}||style="display: none"}}
| colspan="2" | <small>{{{capt|Linos of Melanthos}}}</small>
|-
! colspan="2" | Attendee Information
|-
! Role
| {{{role|Order Master}}}
|-
! Party
| {{{party|Inotian}}}
|-
! Height
| {{{height|5'6}}}
|- {{#if: {{{died|}}}||style="display: none"}}
! Blood Type
| {{{bloodtype|B-}}}
|-
! Resistances
| {{{resistances|AN}}}
|-
! Culinary Notes
| {{{culinary|Dislikes shellfish}}}
|-
! Qualifications
| {{{qual|Grandmaster of Transmutive Healing by Grand Alliance Accolade<br>
First Chair Professor at the Altaian Institute for Arcane Transmutation and Synthesis}}}
|-
! colspan="2" | Personal Information
|-
! Relations
| {{{relations|[[Theodoros of Melanthos]] (son)}}}
|-
! Aliases
| {{{aliases|Linos the Deceiver}}}
|}
8ac0302e7f651b269799813b5b7a0b6b39ac7ff8
107
105
2023-12-16T04:12:02Z
Systemzero
2
wikitext
text/x-wiki
Linos of Melanthos is a member of the inner circle of the [[Order of the Universal Panacea]].
{| class="wikitable" style="float: right"
! colspan="2" | {{{subj|Linos of Melanthos}}}
|-
! colspan="2" {{#if: {{{img|}}}||style="display: none"}} | [[File:{{{img|Linos.jpg}}}|200px]]
|- {{#if: {{{img|}}}||style="display: none"}}
| colspan="2" | <small>{{{capt|Linos of Melanthos}}}</small>
|-
! colspan="2" | Attendee Information
|-
! Role
| {{{role|Order Master}}}
|-
! Party
| {{{party|Inotian}}}
|-
! Height
| {{{height|5'6}}}
|- {{#if: {{{died|}}}||style="display: none"}}
! Blood Type
| {{{bloodtype|B-}}}
|-
! Resistances
| {{{resistances|AN}}}
|-
! Culinary Notes
| {{{culinary|Dislikes shellfish}}}
|-
! Qualifications
| {{{qual|Grandmaster of Transmutive Healing by Grand Alliance Accolade<br>
First Chair Professor at the Altaian Institute for Arcane Transmutation and Synthesis}}}
|-
! colspan="2" | Personal Information
|-
! Relations
| {{{relations|[[Theodoros of Melanthos]] (son)}}}
|-
! Aliases
| {{{aliases|Linos the Deceiver}}}
|}
[[Category:Inner Circle]]
82933f46a77e8f6cd89db329ea88cce0f4745d04
Glossary
0
9
106
97
2023-12-16T03:56:56Z
Systemzero
2
Responsive headings, added links for future pages
wikitext
text/x-wiki
''Thank you for reading. If you are struggling to keep up with some of the language used in this narrative, then this glossary may be of some assistance to you. Though certain terms will be excluded until they become pertinent for the purposes of dramatic tension, please note that this may spoil some light setting-related exposition which will be revealed later.''
----
=== Arcana ===
A power created as a tool by the [[Ironworkers]] to assist in rebuilding the world. Sometimes referred to simply as the Power. Due to its complexity, practitioners (called '[[Arcanists|arcanists]]') are separated into numerous disciplines, which are in turn divided into schools, though it should be noted that these categories are social constructs with no inherent value. The most pertinent:
==== Aetheromancy ====
The study of utilizing arcana to manipulate space.
==== Alchemy ====
The study of utilizing arcana to create novel elements and substances, traditionally in medicine.
==== Anima Scripting ====
The study of utilizing arcana to manipulate the anima script, a biopolymer which determines the development of organisms. Because the subject of the discipline is proto-life rather than life outright, it is technically not a school of Biomancy, though this is the subject of some dispute within the academic community.
==== Biomancy ====
The study of utilizing arcana to manipulate biology.
==== Chronomancy ====
The study of utilizing arcana to manipulate time.
==== Divination ====
The study of utilizing arcana to assess information and predict events.
==== Egomancy ====
The study of utilizing arcana to alter the pneumaic nexus, the seat of human conciousness. Banned everywhere, save for the realms of the Uana. Archaically called Pneumancy.
==== Geomancy ====
The study of utilizing arcana to manipulate earth, the landscape, and most broadly the climate.
==== Golemancy ====
The study of utilizing arcana to create machines.
==== Metamancy ====
The study of using the Power to manipulate itself. A precursor to Egomancy, which itself was a precursor to Neuromancy.
==== Neuromancy ====
The study of utilizing arcana to manipulate the nervous system. Considered outside of Inotia and Ysara to be a mere school of Biomancy.
==== Pyromancy ====
The study of utilizing arcana to create manipulate and generate energy directly, often for destructive purposes.
==== Radiamancy ====
The study of using the Power to manipulate light.
==== Runescripting ====
Not technically a discipline, though often treated as such. The study of engraving incantations, as runes, into various objects.
==== Thanatomancy ====
The study of utilizing arcana to manipulate the process of death, or dead tissue. Archaically known as Necromancy.
==== Transmutation ====
The study of utilizing arcana to change the nature of objects or matter. Most commonly used for replication.
=== Artifice ===
An object or machine that requires the Power to function; for example, an arcane light. Can also be employed as a verb ('artificed') to refer to things merely created by the Power but not dependent upon it, such as construction materials and life brought about by Biomancy.
=== Assimilation Failure ===
A rare side-effect of Induction with an unclear cause. Rather than discarding the memories stored within the affixed [[Pneuma]], the mind instead fixates on or even centers them, beginning to transfer them to the conventional brain. In most cases, this has relatively minor effects, but occasionally can result in alterations to or even replacement of the sufferer's identity. The subject is taboo, with arcanists sworn to secrecy regarding it.
==== Acclimation Therapy ====
A well-tested treatment program designed to minimize or even erase the effects of Assimilation Failure using a combination of medication, thought exercises, behavioral adjustments, and ultimately electrotherapy. Almost always successful to some extent if approached in good faith, though controversy exists regarding when it transitions to being little more than brainwashing.
==== Witch ====
Slang term among arcanists for extreme sufferers of the condition, who fully conceive of themselves as people other than their original, physical selves. Almost all such individuals conceal this information, even from their loved ones. It's said to date from the Mourning Period, when the ailment was poorly understood. Newly-inducted arcanists appeared to simply go mad, using their new powers for wreak chaos and renouncing their former friends and family as if possessed by devils.
=== Civil Dispute ===
Often called the '''Ikkaryonic Revolution''' by the young. A civil conflict within the Grand Alliance that arose based on a decision by its Old Yru Convention to treat the Ikkaryon Provisional Government, who seized the city after the rulers horrifically mismanaged it during an outbreak of disease and subsequent famine, as a criminal enemy of the state and violators of the Covenant. It ultimately led to the most serious armed conflict in 200 years, involving most of the nations of the Elysian Pangaea, before finally being brought to the end by the Summer Compromise of 1388, which granted amnesty and concessions to the rebels and their allies.
=== Collapse ===
Shorthand for 'false vacuum collapse', a phenomenon of astrophysics where a lower minimum of energy in the vacuum is suddenly achieved, causing destabilization at a subatomic level which spreads at the speed of light until equilibrium is once again reached. Sometimes called 'decay' instead. Such an event was largely responsible for ending the Imperial Era and almost destroying human civilization, though there were also socioeconomic factors which radically impeded the response.
=== Covenant ===
Officially the "Covenant of the Mourning Realms". A set of oaths sworn upon by 6 of the Parties of survivors following the creation of the [[Mimikos]], designed to create a civilization that is sustainable in the long term in the new circumstances of humanity. Though largely considered unquestionable by the political mainstream, the interpretation of its tenants have become the subject of conflict, with broadly three schools of thought.
==== Fundamentalist ====
The belief that the tenants of the Covenant are absolute, and must be taken literally. After centuries of ideological dominance, its hegemony has been fractured in the aftermath of the Civil Dispute.
==== Interpretist ====
The belief that the tenants of the Covenant should be interpreted more liberally in accordance with the spirit in which they were written, often under the guidance of a secondary, longer document written by the Covenant's authors known as the Proclamation of Mankind's Future. An ascendant ideology.
==== Reformist ====
The belief that the tenants of the Covenant are flawed due to a lack of foresight by the authors and must be amended or abolished outright. Considered an extremist ideology, although relatively popular among the young.
=== Covenant Schism ===
A disagreement on the specifics of some of the Covenant's tenants between two Parties, the Lluatec and the Uana, and the other six. The result was that they did not settle the Mimikos, and follow a significantly different, and much briefer, version of the Covenant. Attempts have been made to mend this divide for centuries, with limited success.
=== Dementia ===
Shorthand for associative collapse-type dementia. A degenerative mental condition that is increasingly likely to occur in those older than 500, and especially 600 years. It is currently believed to be untreatable. With the exception of accidents, it is the most common cause of death in the civilized world.
=== Duumvirate ===
Shorthand for the Lluatec-Uana Duumvirate. A loose federation that oversees most of the states established by the Lluatec and Uana Parties, placing it in vague opposition to the Grand Alliance, though no hostilities have ever occurred. It dominates the [[Empyrean]] almost completely.
=== Era ===
A popular means of separating human history, based on broad trends in governmental development and the scope of human artifice. Scholars generally observe five distinct eras.
==== Primeval ====
The age between the earliest human settlements and the advent of complex societal organization and subsequent consolidation of power that would come to be defined as civilization. Comprised of small, relatively isolated communities.
==== Old Kingdoms ====
The earliest age of civilization, characterized by local centralization the beginnings of specialized labor, but limited trade and simple government still concentrated in fertile regions.
==== New Kingdoms ====
The first age conceived of as culturally sophisticated, characterized by much greater centralization and high levels of specialization, trade, and complex bureaucratic government. Civilization has now spread across the world, but remains fractious.
==== Imperial ====
The apex of civilization before the collapse of the old world, characterized by a smaller number of extremely complex and deeply interconnected states which largely no longer required human labor to function. The only era in which settlements beyond the Earth were constructed.
==== Covenant/Mourning ====
The contemporary era, for which disagreement on the name exists.
=== Empyrean ===
The area of space both physically and extra-planarly above the Mimikos, largely unused by the Ironworkers. It is home to a variety of experimental structures, many of which are habitable by humans, though to varying degrees of hospitality.
=== Epoch ===
An alternative means of categorizing broad ages of history from a more anthropological perspective, based on the dominant 'tool' utilized by human beings. Divided into four - Bone, Fire, Iron, and Arcane.
=== Exodus, The ===
The event wherein the eight Parties, following their awakening from their slumber within the Tower of Asphodel, were incarnated into either the Mimikos of the Empyrean.
=== Generation ===
An informal label given to individuals based on the century of their birth that has become a socially acceptable way to inquire as to someones approximate age. In the contemporary social climate, the 14th and 13th generations are considered young, the 12th and 11th mature, and the 10th and beyond elderly. This excludes the most recent generation, the 15th, of whom the eldest are only 9 years old.
=== Grand Alliance ===
Shorthand for the Grand Alliance of the Mourning Realms. A single pan-national government under which the nations of the Mimikos united following the virtual elimination of scarcity and the period of universal good relations and heightened diplomatic spirit that marked the end of the Interplanar Colonization Period. Governed by the Old Yru Convention, a council of elected leaders, bureaucrats and heads of state.
=== Great Lamp ===
An artificial sun created by the Ironworkers to service the Mimikos. It crosses the sky each day by means of a giant mechanical edifice, with an angle that changes depending on the season.
=== Great Work ===
A term dating back to ancient alchemy with a vague and often contextually-dependent meaning, but classically in reference to the pursuit of immortality or great scholarly achievements in service of that goal. In some traditions, the Great Work is also a spiritual transformation; the evolution of the self, or man's collective self, into a higher order of being.
=== Incantation ===
The words used to invoke a certain effect using the Power. Largely mathematical in nature, they are spoken in Eme, an ancient relative of modern Ysaran that has almost nothing in common with the contemporary language. They require extremely precise pronunciation and mathematics, or will fail - sometimes with spectacular consequences.
=== Index ===
The source of the Power. An extra-dimensional machine grafted to a Pneuma, allowing it to physically interact with the Higher Planes, moving energy and matter in manners that transcend the mundane. Each Index is unique, and there are a finite number (1,073,741,824) corresponding to different 'routes' by which the Higher Planes can be accessed, often possessing their own subtle traits which affect the casting of their bearer. If fire was the tool by which man began his dominance of nature, then an Index can be considered the terminus of that long quest; all that separates him from divine power is mastery.
=== Induction ===
Sometimes called an 'Initiation Ceremony.' A process which is required for a person to use the Power in the overwhelming majority of circumstances due to the trauma caused to the Pneuma as a result of the severance process designed by the Ironworkers. One of the immeasurable number of Pneuma stored within the Tower of Asphodel from those not fortunate enough to find direct shelter is affixed to the damaged root, allowing the subject to bear an Index. As the Pneuma is not a thing of flesh and blood, this addition is normally ignored by rest of the brain, the information within discarded and overwritten like a fleeting dream.
=== Iron ===
{{main|Iron}}
A substance of incredible power that was harnessed in the New Kingdoms Era, and became the backbone of civilization, enabling the impossible glories of the Imperial Era. As it was used to construct the Tower of Asphodel and preserve reality, it can no longer truly exist in the material world, in much the same way that a box cannot contain itself. However, there are some minor exceptions.
==== False Iron ====
A shadow, or perhaps a simulacrum of iron, taken from the Tower of Asphodel as it exists in mundane reality. It is found underground in veins all over the Mimikos and the Lower Planes, and its connection to the Tower can never truly be severed.
==== True Iron ====
Found only within the bodies of human beings in tiny quantities as a matter of necessity. It is the product of a stable paradox. It becomes False Iron when it leaves the body, and vice-versa.
=== Ironworkers ===
{{main|Ironworkers}}
The scholars who labored to rebuild reality while the Parties slept within the Tower of Asphodel. Masters of its use from the Imperial Era, they were still limited in their success, and only able to approximate the nature of the plane from inference and incomplete records.
=== Logic Bridge ===
{{main|Logic Bridge}}
An interfacing tool used to connect the human mind to either other minds or objects via exercising the iron of the pneumaic nexus, and its connection to the Tower of Asphodel. In its most basic form, it consists of a piece of False Iron, a switch, and two polarized magnets. Can be used directly to facilitate awkward pseudo-telepathy, but a logic engine is required for translating more complex concepts.
=== Logic Engine ===
{{main|Logic Engine}}
A machine used to perform reasoning. Most, but not all, interface with humans via logic bridges. Though logic engines can take many forms, the most common is the oscillatory logic engine, which utilizes microvibrations and extremely delicate machinery to store and process information, along with hydraulic power both to maintain its core tone and physically operate. Though much slower than minds and the iron-based logic engines of old, they are capable of incredible feats of parallel processing, rendering them able to perform mathematics and analysis beyond the scope of human ability.
==== Echo Maze ====
Properly called an Echo Labyrinth. A cube which stores information in its incredibly fine internal indentures. When sound passes through it, a logic engine can process the output as extremely specific information. The most common form of data storage in the present day by far.
=== Luxury Debt ===
A concept that has replaced currency since the advent of mass-duplication arcana destroyed the viability of a scarcity and labor-driven economy. Everyone receives trivially produced goods for free, but to procure something that is either abstract or cannot be duplicated and requires human labor, they must go into debt with the community. This must then be repaid either by community service, or producing something else of value to pass on the debt. Class disparity still exists, however, as it remains possible to amass disproportionate amounts of non-monetary resources for oneself or a company.
=== Mimikos, The ===
The final attempt of the Ironworkers to create a satisfactory replacement for the old world, and the home of the vast majority of living humans. It informally refers to both the structure itself, and the plane in which it was constructed. It is shaped like a giant, incredibly thick bowl, and derives its gravity from a combination of mass, horizontal, and vertical movement. It has three major landmasses.
==== Elysian Pangaea, The ====
A massive, vaguely crescent-shaped continent that comprises over 80% of the surface landmass. The coasts of the ocean within the crescent, the Mnemonic Sea, are the center of international civilization.
==== Inotian Archipelago ====
A large group of islands upon which the Inotian Party mainly settled. Though they comprise only around 1% of the land in the world, they are densely populated.
==== Orphaned Continent, The ====
A continent in the far north, famed for being relatively untamed.
=== Party ===
One of the eight groups that successfully took refuge within the Tower of Aspodel during the collapse of Imperial Era civilization. Each represents a distinct ethnic and cultural group. Some have 'legitimate' governments that can trace their leadership back to the Exodus, while others are the subject of more complicated divisions. The eight Parties are: The Ysaran, Inotian, Mekhian, Saoic, Rhunbardic, Viraaki, Lluateci, and Uana.
==== Ysaran ====
Considered the most politically influential party in the Grand Alliance, it originally settled the coasts of the Mnemonic Sea before splintering almost immediately due to a lack of clear leadership. Today, it is largely reunified under the Ysaran Accord, a democratic federation of nations, though the culturally distinct Asharomi cities and the nation of Ikkaryon remain separate. Its people generally have strong features and light-to-medium brown complexions, with a minority having darker brown. Ysaran (specifically, Towerward Ysaran) serves as the de-facto lingua franca of the modern world. They are famed for their grand architecture and their traditions of runework and Golemancy, with Ysaran mathematicians said to be the greatest in the world, though the Uana would disagree.
==== Inotian ====
Inversely, considered the most culturally influential party due to its history of seafaring and colonization. Though the most direct continuity of its pre-collapse government founded the Republic of Irenca on the Orphaned Continent, the majority of the party splintered to instead erect city-states on the islands of what is today called the Inotian Archipelago. Its people generally have very strong features and brassy complexions, with a minority being paler. They have a well-established scholarly tradition, with Inotian successfully outcome Mekhian as the language of science, and possess a particular bent towards philosophy. The greatest Diviners in the world, the Sibyls, are Inotian, though they are also responsible for the less prestigious discipline of Metamancy.
==== Mekhian ====
Historically non-interventionist yet arguably the most powerful party in an explicit, military-industrial sense, the Mekhians are the only group to have experienced no meaningful political fractures since the settling of the Mimikos. Their state, though heavily federated, consists of the entirety of the non-expatriate and non-expatriate descended population and spans almost the entire civilized east. Its people generally have medium to dark brown complexions and soft features. They also have a strong scholarly tradition, but with a more pragmatic character, and excel at civic management. During the Mourning Period, it was the global center of all arcane research, and its signature disciplines are Geomancy and Thanatomancy.
==== Saoic ====
Descended from a group of cultures which developed in partial isolation from the other Covenant signatories in the old world, the Saoic party settled the west of the continent, and today is divided into the Saoic Arcanoncracy, a bureaucratic dictatorship that is the last in the world governed by arcanists, and the much more liberal Dai League, comprised of various small nations with unique cultures. Its people have amber-to-pale complexions and very soft features. More than any other, Saoic culture has deeply internalized its grief for the old world, having an often solemn and mournful character that shuns excess. Despite this, its artistic and literary traditions are the most influential in the world. Ironically considering the government of the Arcanocracy, its accomplishments are more in conventional technology than arcana - though it is responsible for the artificing tradition of Alchemy and the obscure discipline of Radiamancy.
==== Rhunbardic ====
A warlike party which settled the plateau and steppes in the center of the continent, with the exception of the exile-realms of Umbrica and Turaggoth on the Orphaned Continent. Once, the Rhunbardic Empire ruled half of the Mourning Realms, but it was defeated at the climax of the Tricenturial War and became the much smaller Rhunbardic Kingdom, the last remaining monarchy (albeit a constitutional one) in the world. Its people have pale or sometimes very pale complexions, and features that vary from soft to mixed. Almost every aspect of Rhunbardic culture is militant - cities resemble fortresses, and roles for individuals are often strict and pre-defined. In terms of the Power, it is most known for its Pyromancy, though the much more esoteric tradition of Chronomancy is also found here.
==== Viraaki ====
A party that is widely considered a late-bloomer, having been weak and politically irrelevant for almost a millenia since it settled the jungles and mountains of the south, but now rapidly increasing its influence. Its political structure is unusual, with its disunited realms swearing technical fealty to its capital city-state, Sacred Vir, despite it holding very little practical power. By far the most powerful of these realms is the Exarchate of Palaat, a young nation that has grown rapidly since its founding during the Rhunbardic occupation. Its people have medium to dark brown complexions, but a very wide range of features. It is extremely famed for its Biomancy, which it even incorporates into architecture, and has begun to challenge Inotia and Sao for their cultural and artistic influence.
==== Lluateci ====
One of the two Duumvirate parties based in the Empyrean, they rejected the Covenant of the Mourning Realms and chose to settle smaller structures built by the Ironworkers to avoid open conflict, before ultimately consolidating into the six nations that exist today. They generally have soft features and medium to dark red-tinted complexions. Lluateci culture is hyper-liberal to the point that it can appear almost anarchic to outsiders, with tolerance for practices that would be outrageous elsewhere. Their signature discipline is Transmutation, a necessity for surviving in the void of space, though they are also known for their Arcane Engineering.
==== Uana ====
The second of the two Duumvirate parties based in the Empyrean, though in their case they remained mostly unified. A isolationist culture, the Uana scorn their bodies and the physical reality of the Mimikos as much as possible, choosing instead to interact through logic bridges; a device of their invention. Superficially, their structures appear utterly mercenary - little more than floating blocks of concrete with incredibly basic living quarters. Yet those few who have visited them describe their society within the artificed space as being an attempt to emulate the old world to a greater degree of fidelity than anywhere else. They are masters of Aetheromancy, and it is said they can bend space almost as well as the Iron Princes of the old world.
=== Period ===
A series of sub-classifications for periods of history within the current, post-Imperial era.
==== Mourning Period ====
A time of low-population and great cultural grief for the old world, dominated by the survivors of the event, when civilization was briefly much more primitive than prior ages, mankind not yet having mastered the Power as a replacement for iron.
==== First Resurrection ====
A renaissance characterized by a return to urban, centralized society and a resurgence in academic study, especially concerning arcana, resulting in the return of various amenities thought no longer possible without iron. A fleeting return of Imperial Era culture also occurs.
==== Interluminary Strife ====
A brief but calamitous period brought on by damage to the Great Lamp, depriving the world of sunlight.
==== Hollow Years ====
A dark age of slow recovery from the mass deaths of the previous period.
==== Second Resurrection ====
A renewed renaissance, though with a more culturally conservative character, characterized by the emergence of Covenant fundamentalism. This is considered to be the earliest era that remains in living memory outside of the anomalistically elderly.
==== Tricenturial War ====
A lengthy period of intermittent warfare between the Rhunbardic Empire and everyone else. Not actually three centuries long, despite the name.
==== Planar Colonization Period ====
A period of interest in cross-planar colonization and settlement, as well as interaction (and, ultimately, tension and conflict) with the native inhabitants.
==== Unending Peace, The ====
The contemporary age following the creation of the Grand Alliance.
=== Plane ===
An area of dimensionally and ruleset-consistent reality. Though the term theoretically applies to the millions of possible facets of the dimensional landscape in the universe, the more common use is in reference to the planes of the Tower of Asphodel, which all attempt at approximating the nature of mankind's long-gone original reality. A phrase often used to describe the latter in totality is the Remaining World.
=== Pneuma ===
An informal shorthand for the aspect of human brain which operates extradimensionally, a phenomena discovered at the end of the Imperial Era. Though originally arising entirely as a byproduct of biology,iIn the modern day, the process by which the Pneuma is intergrated with the mind must be facilitated artificially with an engineered organ known as the Pneumaic Nexus, and new ones pruned to prevent them from reconnecting with those belonging to their Seed.
=== Political Affiliation ===
Following the end of scarcity and the creation of the Grand Alliance, old political ideologies based around its management became inapplicable, becoming replaced by new variants focused on how society should encourage and reward participation and distribute political power. Often paired with the attitudes to the covenant listed above. For example, the political platform of the Grand Alliance is Humanist-Fundamentalist.
==== Humanism ====
The belief that the state should serve every human need it can accommodate without substantial cost unconditionally (generally considered to include unlimited food of reasonable quality, clothes, basic housing and entertainment, education, and essential medical care) but that beyond that internal disparity is acceptable and that luxury and political power should be afforded only as rewards for communal participation, defined broadly as the creation or facilitation of luxuries, or the fulfillment of the essential needs of the state. Considered by its advocates to be the only value system that properly reflects the tenants of the Covenant.
==== Meritism ====
The belief that the state should be obligated to provide only the barest essentials for human survival, and that all else must be earned either through either service to the community or personal entrepreneurship. It is conceptually rooted in the idea that human beings only thrive when forced into self-sufficiency, and that to offer too much for nothing, even when abundance permits it, fosters decadence. Many, however, accuse its advocates of more selfish motivations.
==== Paritism ====
The belief that the state should offer the people unconditional equality in the distribution of resources, regardless of contribution or personal background. Extremely popular among the young, who have suffered the brunt of widening generational inequality, but considered fringe outside of the global east.
==== Idealism ====
Sometimes defined as a subset of Meritism. The belief that the state should reward people neither universally nor on the basis of contribution, but rather by their degree of compliance with a set of national values or "ideals", usually moral in nature, but also often tied up in nationalism and religion. Extremists of this ideology are considered politically toxic and referred to as Iconists.
=== Prosognostic Event/Contact Paradox ===
{{main|Contact Paradox}}
Two potential results of individuals born from the same seed from the Tower of Asphodel coming into contact with one another. The former, caused by merely witnessing a face that matches own self-conception, leads to severe seizure-like symptoms, but this is merely a defense mechanism against the latter. If the individuals touch, the iron in both of their bodies and the surrounding area is obliterated by a temporal paradox, causing the death of both and any bystanders within a few meters.
=== Refractor Rifle ===
A type of firearm which propels pure light energy through a series of filters which can be lowered at the discretion of the user to varying results, ranging from stunning organic targets (though not entirely safely) to melting anything up to and including metal and stone. Developed during the Great Interplanar War, it is beginning to show its age as technology, with armors capable of deflecting its shots at even the most potent settings supposedly in development. Many wait with baited breath for the next leap in non-arcane weapons technology.
=== Seed ===
The source body, stored within the Tower of Asphodel, from which a person is derived on a cellular level. They are derived from the original members of each of the eight Parties, coming to a total of around 100,000 in aggregate.
=== Tower of Asphodel ===
{{main|Tower of Asphodel}}
The structure created by the Ironworkers at the end of the Imperial Era to provide refuge to those who could obtain it, and later to act as a foundation for the planes they would create. It is visible in the sky at all times, though it exists only partially as a physical object.
9437b46d08a722029bc791205349bbafd2252c92
Category:Inner Circle
14
41
108
2023-12-16T04:13:23Z
Systemzero
2
Created page with "[[Category:Order of the Universal Panacea]]"
wikitext
text/x-wiki
[[Category:Order of the Universal Panacea]]
ac86432f6a12b59b6d6ae1b367628e0733c63719
Order of the Universal Panacea
0
42
109
2023-12-16T04:59:16Z
Systemzero
2
Created page with "The '''Order of the Universal Panacea''' is an organization dedicated to the pursuit of immortality. It is housed in the [[Apsu|Sanctuary of Apsu]]. == Ranks == ===== Aspirants ===== Formally known as '''neophytes'''. Permits limited access to resources and attendance at a minority of meetings.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/597607/029-in-fading-image 029: In Fading Image (𒐄)]</ref> ===== Companion-Legionary ====..."
wikitext
text/x-wiki
The '''Order of the Universal Panacea''' is an organization dedicated to the pursuit of immortality. It is housed in the [[Apsu|Sanctuary of Apsu]].
== Ranks ==
===== Aspirants =====
Formally known as '''neophytes'''. Permits limited access to resources and attendance at a minority of meetings.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/597607/029-in-fading-image 029: In Fading Image (𒐄)]</ref>
===== Companion-Legionary =====
Conveys full membership. Traditionally bestowed after 25 years by Inner Circle vote.
===== Inner Circle =====
Formally known as the '''Discretionary Council'''. Six members who are de-facto leaders of the order. Position elected every 12 years.
== History ==
The order was founded by [[Ubar of Kane]] during the First Resurrection.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom 015: Everblossom (𒐁)]</ref> He took understudies from various professions, including the physicist [[Saahdia ibnat Addad]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/681110/045-the-chosen-children 045: The Chosen Children (𒐅)]</ref> Her theory of the consciousness of entropy was influential in the order's later research.
f629a55f35ed4f4e45727ef886e56160770044c3
Atelikos
0
37
110
95
2023-12-16T05:06:25Z
Systemzero
2
Fixed link
wikitext
text/x-wiki
The Atelikos is the second highest of [[the seven planes]] and the sixth attempt from the [[Ironworkers]] at recreating the physics and living conditions of [[the old world]]. The Atelikos is functionally complete and supports human civilisations, although it has far less surface area then the [[Mimikos]], both due to being physically smaller and being mostly covered in ocean. The headquarters of the [[Order of the Universal Panacea]] are located at the bottom of the northern Innocent Sea on the Atelikos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom].
The Atelikos is covered by 97% water, leaving very little land area for settlement [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. Most of the plane is composed of ocean that supports at least some large sea creatures [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/629273/033-profane-ambition]. The land is covered by [[Skia]], or shadow grass, a species of non iron-based grass common on the lower planes [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/464907/013-everblossom]. The shape of the Atelikos is an octagonal flat plate with a lamp rotating around it [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. The flatness causes the gravity to be weaker than on the Mimikos [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/629273/033-profane-ambition].
The civilizations of the Atelikos were involved in [[the interplanar war]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/773743/065-power-of-the-gods]
[[Lurina]] describes the Thyellikos in a discord post as follows:
''"Atelikos ("Unfinished World") - Shaped like plate with a tall rim. Mostly ocean, and the only world smaller than the one residing on the plane above it.''
c4b7601564f6b827734f90f8f10bd43f86f26ba6
Remaining World
0
29
111
75
2023-12-17T16:15:33Z
Systemzero
2
Systemzero moved page [[The seven planes]] to [[Remaining World]]: More commonly used term
wikitext
text/x-wiki
The planes are spaces of dimensionally and ruleset-consistent reality within the remaining world. Though the term theoretically applies to the millions of possible facets of the remaining world, the more common use is in reference to the seven planes of the [[Tower of Asphodel]] [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary], often depicted as stacked sequentally from the "bottom" towards the "top" of the tower [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]. This is an accurate metaphor as they exist sequentially, but none of the planes are visible from any other planes and it's impossible to travel between planes using conventional travel.
The seven planes come from the ironworkers' attempts at reconstructing the physics and living conditions of the old world in the restricted and alien conditions of the Tower of Asphodel [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467519/glossary][https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]. Each of the seven planes represents an attempt, most of them being failures and not condusive to human habitation [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom]. The seven planes are, in order from lowest/oldest to highest/newest, [[Ergastrikos]], [[Paradoxikos]], [[Lavyrinthikos]], [[Thyellikos]], [[Diakos]], [[Atelikos]] and [[Mimikos]]. The space existing below the Ergastrikos is referred to as the [[Nadir]], and the space above the Mimikos is referred to as [[The Empyrean]].
[[File:The Planes 3.png|thumb|alt=Illustration of the seven planes stacked in order from lowest to highest.|The seven planes illustrated by community member SilverHydra]]
246c709948fdb3fce40479b820d64e46ab11a385
113
111
2023-12-17T18:29:02Z
Systemzero
2
Complete overhaul of page
wikitext
text/x-wiki
The '''Remaining World''' is the universe created [[Ironworkers]] as a new home for humanity after the [[Collapse|collapse]], severed from the [[Old world|old world]] in terms of space-time.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/648360/038-profane-ambition 038: Profane Ambition (𒐅)]</ref> It consists of the [[Tower of Asphodel]] and the planes it supports.
== Cosmology ==
The planes are spaces of dimensionally and ruleset-consistent reality within the remaining world. Though the term theoretically applies to the millions of possible facets of the remaining world, the more common use is in reference to the seven planes of the Tower of Asphodel<ref>[[Glossary]]</ref>, often depicted as stacked sequentially from the "bottom" towards the "top" of the tower.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting 019: The Quest Unrelenting (𒐀)]</ref> This is an accurate metaphor as they exist sequentially, but none of the planes are visible from any other planes and it is impossible to travel between planes using conventional travel.
== Mortal Planes ==
The Ironworkers made seven attempts to reconstruct the physics and living conditions of the old world in the restricted and alien conditions of the Tower of Asphodel. Each of the mortal planes represents an attempt, most of them being failures and not conducive to human habitation.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom 015: Everblossom (𒐁)]</ref> The mortal planes are, in order from lowest/oldest to highest/newest, the Ergastrikos, Paradoxikos, Lavyrinthikos, Thyellikos, Diakos, Atelikos and Mimikos.
All planes below the Mimikos are known as the '''Lower Planes'''.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep 008: Pilgrimage to the Deep (𒐀)]</ref> The space existing below the Ergastrikos is referred to as the '''Nadir''', and the space above the Mimikos is referred to as the [[Empyrean]].
=== Mimikos ===
The Mimikos is the highest plane of the Remaining World and the primary home of humanity.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/436845/003-mankinds-shining-future 003: Mankind's Shining Future (𒐁)]</ref> The term refers to both the plane itself and the planet.
The Mimikos is roughly in the shape of a bowl contained within a stone-and-metal superstructure that also supports the [[Great Lamp]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep 008: Pilgrimage to the Deep (𒐀)]</ref> It is approximately 13,000 kilometers across. About 63% of its surface is covered by water.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom 015: Everblossom (𒐁)]</ref>
The bowl of the Mimikos was settled by the six parties that accepted the [[Covenant]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/441024/004-mankinds-shining-future 004: Mankind's Shining Future (𒐂)]</ref> The two [[Duumvirate]] parties instead made their homes in smaller experimental habitats created by the Ironworkers in the Empyrean.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467002/014-everblossom 014: Everblossom (𒐀)]</ref>
Travel between the Mimikos and the [[Empyrean]] is conducted by [[Aetherbridge]] [[Transposition|transpositioning]].
=== Atelikos ===
The Atelikos is the second highest plane and the sixth attempt from the Ironworkers at recreating the physics and living conditions of the old world. The Atelikos is functionally complete and supports human civilizations, although it has far less surface area then the Mimikos, both due to being physically smaller and being mostly covered in ocean.
The Atelikos is covered by 97% water, leaving very little land area for settlement.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom 015: Everblossom (𒐁)]</ref> Most of the plane is composed of ocean that supports at least some large sea creatures.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/629273/033-profane-ambition 033: Profane Ambition (𒐀)]</ref> The land is covered by [[Skia]], or shadow grass, a species of non iron-based grass common on the lower planes.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/464907/013-everblossom 013: Everblossom]</ref> The shape of the Atelikos is an octagonal flat plate with a lamp rotating around it. The flatness causes the gravity to be weaker than on the Mimikos.
The civilizations of the Atelikos were involved in the [[Interplanar War]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/773743/065-power-of-the-gods 065: Power of the Gods]</ref>
[[Lurina]] describes the Atelikos in a discord post as follows:
''"Atelikos ("Unfinished World") - Shaped like plate with a tall rim. Mostly ocean, and the only world smaller than the one residing on the plane above it.''
=== Diakos ===
The Diakos is the third highest plane and the fifth attempt from the Ironworkers at recreating the physics and living conditions of the old world. The Diakos is notable as being the first of the planes capable of supporting life and the lowest plane with a permanent human population of a few million living in reservations.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/851634/080-justice-and-kindness 080: Justice and Kindness (𒐅)]</ref><ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1072732/107-until-nothing-remains 107: Until Nothing Remains (𒐀)]</ref>
The physical world of the Diakos is a large ring world with an area ten times larger than that of the Mimikos covered in dense alien colored jungle. The flora and fauna of the Diakos was left to evolve on its own by the ironworkers and their biology is thus not iron based. This alien environment makes it physically difficult for residents of the Diakos to migrate to the higher planes and migrants require organ replacements.
The civilizations of the Diakos were hit hard by the Interplanar War. Many atrocities were committed and the reservations on the Diakos now receive funding from the Mimikos as a form of compensation.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/773743/065-power-of-the-gods 065: Power of the Gods]</ref>
Lurina describes the Diakos in a discord post as follows:
''"Diakos ("Crown World") A world shaped like a giant ring in orbit around a Great Lamp. Mostly jungle and full of life, but everything is incredibly alien."''
=== Thyellikos ===
The Thyellikos, sometimes referred to as "The Tempest", is the fourth highest plane and the fourth attempt from the Ironworkers at recreating the physics and living conditions of the old world. The Thyellikos is described as being significantly bigger than the planes above it with the actual planets in the plane physically distant from the Tower of Asphodel.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting 019: The Quest Unrelenting (𒐀)]</ref> There is mentioned the possibility of "monsters" living in the Thyellikos. <ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/570921/025-in-fading-image 025: In Fading Image (𒐀)]</ref>.
Lurina describes the Thyellikos in two discord posts as follows:
''"Thyellikos ("Storm World") A world that was originally supposed to be a giant sphere with the inhabitants living on the interior, it collapsed, resulting in a massive tempest with several pseudo-planetary bodies. Unlike higher planes, it used something closer to a normal star, which is now in an unstable state at the center."''
''" ...the Thyellikos is meant to be somewhat more shattered and to have like, a big mess of circling gas and fire at the center."''
=== Lavyrinthikos ===
The Lavyrinthikos is the fifth highest plane and the third attempt from the Ironworkers at recreating the physics and living conditions of the old world. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as [[Mahabaal]].
Lurina describes the Lavyrinkos in two discord posts as follows:
''"Lavyrinkos ("Labyrinth World") A world designed as a vast number of small demi-planes that were intended to interlink completely, creating the illusion of a discrete reality, it has now broken down its component parts, the connections between them shifting constantly. Incredibly diverse."''
''"Regarding the Lavyrinkos... I'd probably imagined [it] as being represented as like... A cluster of tiny spheres linked together by lines..."''
=== Paradoxikos ===
The Paradoxikos is the sixth highest plane and the second attempt from the Ironworkers at recreating the physics and living conditions of the old world.
Lurina describes the Paradoxikos in a discord post as follows:
''"Paradoxikos ("Paradox World") An ambitious world designed to emulate reality experientially rather than foundationally, with a Moebius strip-like structure. A completely failed project in which time and space flow incoherently and in which nothing can survive."''
=== Ergastrikos ===
The Ergastrikos is the lowest plane and the first attempt from the Ironworkers at recreating the physics and living conditions of the old world. Lurina describes the Ergastrikos in two discord posts as follows:
''"Ergastrikos ("Sandbox World") The first world created by the Ironworkers, it later served as a testing ground for their efforts. An infinite flat plane is littered with failed attempts at creating a conventional, spherical planet."''
''"Regarding... the Esgastrikos, I'd probably imagined... [it] would probably be represented as just a flat platform at the base of the orrery. Maybe with some broken planets."''
[[File:The Planes 3.png|thumb|alt=Illustration of the seven planes stacked in order from lowest to highest.|The seven planes illustrated by community member SilverHydra]]
017dba8d4d60fbb6aa1d40ab7a7f2d288008fd66
114
113
2023-12-17T18:30:05Z
Systemzero
2
Fixed formatting error
wikitext
text/x-wiki
The '''Remaining World''' is the universe created [[Ironworkers]] as a new home for humanity after the [[Collapse|collapse]], severed from the [[Old world|old world]] in terms of space-time.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/648360/038-profane-ambition 038: Profane Ambition (𒐅)]</ref> It consists of the [[Tower of Asphodel]] and the planes it supports.
== Cosmology ==
The planes are spaces of dimensionally and ruleset-consistent reality within the remaining world. Though the term theoretically applies to the millions of possible facets of the remaining world, the more common use is in reference to the seven planes of the Tower of Asphodel<ref>[[Glossary]]</ref>, often depicted as stacked sequentially from the "bottom" towards the "top" of the tower.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting 019: The Quest Unrelenting (𒐀)]</ref> This is an accurate metaphor as they exist sequentially, but none of the planes are visible from any other planes and it is impossible to travel between planes using conventional travel.
== Mortal Planes ==
The Ironworkers made seven attempts to reconstruct the physics and living conditions of the old world in the restricted and alien conditions of the Tower of Asphodel. Each of the mortal planes represents an attempt, most of them being failures and not conducive to human habitation.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom 015: Everblossom (𒐁)]</ref> The mortal planes are, in order from lowest/oldest to highest/newest, the Ergastrikos, Paradoxikos, Lavyrinthikos, Thyellikos, Diakos, Atelikos and Mimikos.
All planes below the Mimikos are known as the '''Lower Planes'''.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep 008: Pilgrimage to the Deep (𒐀)]</ref> The space existing below the Ergastrikos is referred to as the '''Nadir''', and the space above the Mimikos is referred to as the [[Empyrean]].
=== Mimikos ===
The Mimikos is the highest plane of the Remaining World and the primary home of humanity.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/436845/003-mankinds-shining-future 003: Mankind's Shining Future (𒐁)]</ref> The term refers to both the plane itself and the planet.
The Mimikos is roughly in the shape of a bowl contained within a stone-and-metal superstructure that also supports the [[Great Lamp]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep 008: Pilgrimage to the Deep (𒐀)]</ref> It is approximately 13,000 kilometers across. About 63% of its surface is covered by water.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom 015: Everblossom (𒐁)]</ref>
The bowl of the Mimikos was settled by the six parties that accepted the [[Covenant]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/441024/004-mankinds-shining-future 004: Mankind's Shining Future (𒐂)]</ref> The two [[Duumvirate]] parties instead made their homes in smaller experimental habitats created by the Ironworkers in the Empyrean.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/467002/014-everblossom 014: Everblossom (𒐀)]</ref>
Travel between the Mimikos and the [[Empyrean]] is conducted by [[Aetherbridge]] [[Transposition|transpositioning]].
=== Atelikos ===
The Atelikos is the second highest plane and the sixth attempt from the Ironworkers at recreating the physics and living conditions of the old world. The Atelikos is functionally complete and supports human civilizations, although it has far less surface area then the Mimikos, both due to being physically smaller and being mostly covered in ocean.
The Atelikos is covered by 97% water, leaving very little land area for settlement.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/468989/015-everblossom 015: Everblossom (𒐁)]</ref> Most of the plane is composed of ocean that supports at least some large sea creatures.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/629273/033-profane-ambition 033: Profane Ambition (𒐀)]</ref> The land is covered by [[Skia]], or shadow grass, a species of non iron-based grass common on the lower planes.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/464907/013-everblossom 013: Everblossom]</ref> The shape of the Atelikos is an octagonal flat plate with a lamp rotating around it. The flatness causes the gravity to be weaker than on the Mimikos.
The civilizations of the Atelikos were involved in the [[Interplanar War]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/773743/065-power-of-the-gods 065: Power of the Gods]</ref>
[[Lurina]] describes the Atelikos in a discord post as follows:
''"Atelikos ("Unfinished World") - Shaped like plate with a tall rim. Mostly ocean, and the only world smaller than the one residing on the plane above it.''
=== Diakos ===
The Diakos is the third highest plane and the fifth attempt from the Ironworkers at recreating the physics and living conditions of the old world. The Diakos is notable as being the first of the planes capable of supporting life and the lowest plane with a permanent human population of a few million living in reservations.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/851634/080-justice-and-kindness 080: Justice and Kindness (𒐅)]</ref><ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1072732/107-until-nothing-remains 107: Until Nothing Remains (𒐀)]</ref>
The physical world of the Diakos is a large ring world with an area ten times larger than that of the Mimikos covered in dense alien colored jungle. The flora and fauna of the Diakos was left to evolve on its own by the ironworkers and their biology is thus not iron based. This alien environment makes it physically difficult for residents of the Diakos to migrate to the higher planes and migrants require organ replacements.
The civilizations of the Diakos were hit hard by the Interplanar War. Many atrocities were committed and the reservations on the Diakos now receive funding from the Mimikos as a form of compensation.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/773743/065-power-of-the-gods 065: Power of the Gods]</ref>
Lurina describes the Diakos in a discord post as follows:
''"Diakos ("Crown World") A world shaped like a giant ring in orbit around a Great Lamp. Mostly jungle and full of life, but everything is incredibly alien."''
=== Thyellikos ===
The Thyellikos, sometimes referred to as "The Tempest", is the fourth highest plane and the fourth attempt from the Ironworkers at recreating the physics and living conditions of the old world. The Thyellikos is described as being significantly bigger than the planes above it with the actual planets in the plane physically distant from the Tower of Asphodel.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting 019: The Quest Unrelenting (𒐀)]</ref> There is mentioned the possibility of "monsters" living in the Thyellikos.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/570921/025-in-fading-image 025: In Fading Image (𒐀)]</ref>
Lurina describes the Thyellikos in two discord posts as follows:
''"Thyellikos ("Storm World") A world that was originally supposed to be a giant sphere with the inhabitants living on the interior, it collapsed, resulting in a massive tempest with several pseudo-planetary bodies. Unlike higher planes, it used something closer to a normal star, which is now in an unstable state at the center."''
''" ...the Thyellikos is meant to be somewhat more shattered and to have like, a big mess of circling gas and fire at the center."''
=== Lavyrinthikos ===
The Lavyrinthikos is the fifth highest plane and the third attempt from the Ironworkers at recreating the physics and living conditions of the old world. The Lavyrinthikos is not settled by humans, but is visited by explorers of the lower planes, such as [[Mahabaal]].
Lurina describes the Lavyrinkos in two discord posts as follows:
''"Lavyrinkos ("Labyrinth World") A world designed as a vast number of small demi-planes that were intended to interlink completely, creating the illusion of a discrete reality, it has now broken down its component parts, the connections between them shifting constantly. Incredibly diverse."''
''"Regarding the Lavyrinkos... I'd probably imagined [it] as being represented as like... A cluster of tiny spheres linked together by lines..."''
=== Paradoxikos ===
The Paradoxikos is the sixth highest plane and the second attempt from the Ironworkers at recreating the physics and living conditions of the old world.
Lurina describes the Paradoxikos in a discord post as follows:
''"Paradoxikos ("Paradox World") An ambitious world designed to emulate reality experientially rather than foundationally, with a Moebius strip-like structure. A completely failed project in which time and space flow incoherently and in which nothing can survive."''
=== Ergastrikos ===
The Ergastrikos is the lowest plane and the first attempt from the Ironworkers at recreating the physics and living conditions of the old world. Lurina describes the Ergastrikos in two discord posts as follows:
''"Ergastrikos ("Sandbox World") The first world created by the Ironworkers, it later served as a testing ground for their efforts. An infinite flat plane is littered with failed attempts at creating a conventional, spherical planet."''
''"Regarding... the Esgastrikos, I'd probably imagined... [it] would probably be represented as just a flat platform at the base of the orrery. Maybe with some broken planets."''
[[File:The Planes 3.png|thumb|alt=Illustration of the seven planes stacked in order from lowest to highest.|The seven planes illustrated by community member SilverHydra]]
c6bd166206fce1ce15ce21db10f12507239681ac
The seven planes
0
43
112
2023-12-17T16:15:33Z
Systemzero
2
Systemzero moved page [[The seven planes]] to [[Remaining World]]: More commonly used term
wikitext
text/x-wiki
#REDIRECT [[Remaining World]]
0153a71ebc8910bc8bcc21b0129653b6db06130f
Arcana
0
44
115
2023-12-17T20:12:57Z
SilverHydra
7
Created page with "Arcana is a power created as a tool by [[the Ironworkers]] to assist in rebuilding the world. Sometimes referred to simply as the Power. Arcana can also refer to individual incantations, spells or techniques employing the power. An object utilising the Power or dreated by it is referred to as a Artifice. Practitioners of the Power are called Arcanists. Being an Arcanist requires skill, training and, in most cases, an induction procedure. Due to its complexity, arcanists..."
wikitext
text/x-wiki
Arcana is a power created as a tool by [[the Ironworkers]] to assist in rebuilding the world. Sometimes referred to simply as the Power. Arcana can also refer to individual incantations, spells or techniques employing the power. An object utilising the Power or dreated by it is referred to as a Artifice. Practitioners of the Power are called Arcanists. Being an Arcanist requires skill, training and, in most cases, an induction procedure. Due to its complexity, arcanists are separated into disciplines, which are in turn divided into schools, though it should be noted that these categories are social constructs with no inherent value.
==Disciplines and Schools==
===Aetheromancy===
The study of utilizing arcana to manipulate space.
===Alchemy===
The study of utilizing arcana to create novel elements and substances, traditionally in medicine.
===Anima Scripting===
The study of utilizing arcana to manipulate the anima script, a biopolymer which determines the development of organisms. Because the subject of the discipline is proto-life rather than life outright, it is technically not a school of Biomancy, though this is the subject of some dispute within the academic community.
===Biomancy===
The study of utilizing arcana to manipulate biology.
===Chronomancy===
The study of utilizing arcana to manipulate time.
===Divination===
The study of utilizing arcana to assess information and predict events.
===Egomancy===
The study of utilizing arcana to alter the pneumaic nexus, the seat of human conciousness. Banned everywhere, save for the realms of the Uana. Archaically called Pneumancy.
===Geomancy===
The study of utilizing arcana to manipulate earth, the landscape, and most broadly the climate.
===Golemancy===
The study of utilizing arcana to create machines.
===Metamancy===
The study of using the Power to manipulate itself. A precursor to Egomancy, which itself was a precursor to Neuromancy.
===Neuromancy===
The study of utilizing arcana to manipulate the nervous system. Considered outside of Inotia and Ysara to be a mere school of Biomancy.
===Pyromancy===
The study of utilizing arcana to create manipulate and generate energy directly, often for destructive purposes.
===Radiamancy===
The study of using the Power to manipulate light.
===Runescripting===
Not technically a discipline, though often treated as such. The study of engraving incantations, as runes, into various objects.
===Thanatomancy===
The study of utilizing arcana to manipulate the process of death, or dead tissue. Archaically known as Necromancy.
===Transmutation===
The study of utilizing arcana to change the nature of objects or matter. Most commonly used for replication.
=List of arcana=
{| class="wikitable sortable"
! Arcana !! Script !! First mention
|-
| Life Slaying || "...𒋤𒋛𒄭𒂗𒌷𒈿𒇲𒄴!” || 2 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/435882/002-mankinds-shining-future]
|-
| Entropy Denying || "...(𒌍𒌷𒀭)(𒌍𒁁𒀭)𒅥𒌈𒆜𒈣𒂠, 𒋢𒀀𒅆𒌫𒃶,𒈬𒊹." || 5 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/442370/005-mankinds-shining-future]
|-
| Matter Suspending || || 5 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/442370/005-mankinds-shining-future]
|-
| Mass Nullifying || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Friction Denying || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Pressure Manipulating || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Flesh Animating || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Pressure Denying || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| World Bending || "...𒉎𒁁𒅈𒆜𒆪𒊓𒆤𒂍,𒋫𒇲𒇻𒀀𒅋𒌫𒍑,𒍝𒍝𒍝,𒅥𒁲𒀩𒌋,𒌦𒊹" || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Negenthropic Resuscitating || || 10 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/456544/010-pilgrimage-to-the-deep]
|-
| Anomaly Divining || "...𒈣𒄀𒌈𒀭𒊍. (𒌍𒍣𒍥𒊒𒊬𒉌𒌫𒐼). 𒄭𒌋𒌋𒌋𒌋, 𒊹..." || 12 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/461381/012-pilgrimage-to-the-deep]
|-
| Time Inferring || || 12 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/461381/012-pilgrimage-to-the-deep]
|-
| Planar Cutting || || 13 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/464907/013-everblossom]
|-
| Anatomy Beguiling || "...𒊬𒃶𒋾𒄿𒄿,𒀀𒄀...." "...𒀭𒂗𒊬𒃶𒋾𒄿𒄿,𒀀𒄀...." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Matter Shifting || ".... 𒄭𒅗𒈣𒈣𒁹𒁺...." "....𒉈𒆠𒆷𒉌𒍣, 𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Matter Annihilating || "....𒉈𒆠𒍥𒆤, 𒀉𒌍𒌍𒀭𒌓. 𒊹. || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Air Thrusting || "...𒁺𒂷𒉘𒄴, 𒊌𒀾𒅇𒄿, 𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Motion Beguiling || "...𒄴𒄠/𒂔𒄴𒋤𒅆𒍣𒃶𒄖𒐊𒐊. 𒂵𒀀𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Light Warping || " ...𒀀𒊌𒋛𒊬𒆕𒆠𒄩, 𒌈𒀊𒂠𒄭, 𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Death Sensing || "...𒍣𒍣𒁺𒋼𒉌𒌈𒀭𒋫𒂊𒌍𒁹𒐊𒐊𒐊𒊹!" || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| World Deafening || "...𒀉𒈾𒄿𒄿, 𒄷𒈾𒀀𒇉𒅋𒀝𒅈𒋜𒆕𒊹. || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Entropy Accelerating || "....𒋜,𒌅𒋫,𒅥𒌈𒆜𒈣𒂠, 𒋢𒀀𒅆𒌫𒃶,𒈬𒊹!" || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Entropy Reversing || "...𒆠𒈪,𒌷𒌷,𒀭𒊩𒌆𒅅,𒋢𒀀𒅆𒌫𒃶,𒈬,𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Senolyte Slaying || || 19 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]
|-
| Anatomy-Motion-Neurology Beguiling || "...𒊬𒃶𒋾𒄴𒄠/𒂔𒄴𒋤𒅆𒍣𒃶𒄖𒐊𒐊,𒄀𒈣𒊑𒅘..." || 20 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/528905/020-the-quest-unrelenting]
|-
| Vitality Percieving || || 20 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/528905/020-the-quest-unrelenting]
|-
| Form Levitating || || 24 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/569067/024-in-fading-image]
|-
| Form Chronicling || " ...𒈪𒊑𒉌𒈬,𒉘𒄴𒌓𒐊𒐊𒐊𒐊, 𒅎 𒍥𒁍𒊹." || 24 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/569067/024-in-fading-image]
|-
| Time Reversing || || 25 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/570921/025-in-fading-image]
|-
| Hive Conceptualizing || "...𒊌𒅎𒀉𒌫𒀊, 𒀭𒀉𒃶𒐊𒐊𒄀𒁍𒊹." || 26 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image]
|-
| Matter Unfurling || "...𒅆𒅆𒊑𒃶𒈿,𒌍𒌍,𒀸𒍣𒊺𒄷𒊹." || 26 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image]
|-
| Impulse Transmitting || || 36 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/640735/036-profane-ambition]
|-
| Neurology Beguiling || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Time Stopping || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Matter Repulsing || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Anomaly Denying || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Object Manipulating || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Biomatter Warping || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Life Sensing || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Iron Toning || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Flame Summoning || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Flesh Weaving || || 43 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/668921/043-the-chosen-children]
|-
| Energy Nullifying Projecting || "...𒁽𒅅𒈪𒈪𒀩𒀖𒂊, 𒄿𒄿𒄿𒂷𒌍𒀾𒄷𒌫𒄀𒊹.𒁺." || 49 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/696447/049-the-die-falls]
|-
| Matter Replicating || "𒈪𒊬𒄴𒌔𒁺𒄀𒈬𒉺, 𒌷𒊓𒊒𒄷𒍣𒆭𒌍𒀸𒄿𒄿𒊹." || 51 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/704282/051-the-die-falls]
|-
| Moment Emulating || || 52 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/708322/052-the-die-falls]
|-
| Energy Nullifying || || 54 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/716832/054-the-die-falls]
|-
| Negentropic Interfacing || || 68 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/788908/068-power-of-the-gods]
|-
| Phantasm Projecting || || 77 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/837064/077-justice-and-kindness]
|-
| Sound Echoing || || 79 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/846869/079-justice-and-kindness]
|-
| Matter Refracting || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Neuromagnetic Shielding || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Particle Striking || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| The Sun Crown || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Matter Unbinding || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Sensory Transmitting || || 86 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/896019/086-split-body]
|-
| Matter Mapping || || 91 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/928201/091-split-body]
|-
| Nerve Depressing || || 93 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/942973/093-everyone-dies]
|-
| Matter Sensing || || 107 [https://sekhmet.fun/search?q=matter+sensing]
|-
| Energy Piercing || || 108 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1085185/108-until-nothing-remains]
|-
| Cell Discerning || || 112 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1127003/112-until-nothing-remains]
|-
| Lethe Flowing || || 114 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1156590/114-until-nothing-remains]
|-
| Matter Gathering || || 117 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1222171/117-until-nothing-remains]
|-
| Matter Carving || || 122 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1294122/122-utsushikome-and-the-demon]
|-
| Time Decelerating || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Matter Liquefying || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Wind Striking || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Air Compressing || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Voice Carrying || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Biochemical Trancing || || 124 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1320883/124-utsushikome-and-the-demon]
|-
| Time Slowing || || 124 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1320883/124-utsushikome-and-the-demon]
|-
| Bacteria Springing || || 124 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1320883/124-utsushikome-and-the-demon]
|-
| Matter Solidifying || || 129 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1369743/129-got-away-with-it]
|-
| Object Replicating || || 129 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1369743/129-got-away-with-it]
|-
| Pattern Replicating || || 129 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1369743/129-got-away-with-it]
|}
76c7cd96a28fa5ff9607616cbf00cae496379033
116
115
2023-12-17T22:30:42Z
Systemzero
2
Style adjustments, fixed links, corrected typo
wikitext
text/x-wiki
'''Arcana''' is a power created as a tool by the [[Ironworkers]] to assist in rebuilding the world. Sometimes referred to simply as the Power. Arcana can also refer to individual incantations, spells or techniques employing the power. An object utilising the Power or treated by it is referred to as a Artifice. Practitioners of the Power are called [[Arcanists|arcanists]]. Being an arcanist requires skill, training and, in most cases, an induction procedure. Due to its complexity, arcanists are separated into disciplines, which are in turn divided into schools, though it should be noted that these categories are social constructs with no inherent value.
==Disciplines and Schools==
===Aetheromancy===
The study of utilizing arcana to manipulate space.
===Alchemy===
The study of utilizing arcana to create novel elements and substances, traditionally in medicine.
===Anima Scripting===
The study of utilizing arcana to manipulate the anima script, a biopolymer which determines the development of organisms. Because the subject of the discipline is proto-life rather than life outright, it is technically not a school of Biomancy, though this is the subject of some dispute within the academic community.
===Biomancy===
The study of utilizing arcana to manipulate biology.
===Chronomancy===
The study of utilizing arcana to manipulate time.
===Divination===
The study of utilizing arcana to assess information and predict events.
===Egomancy===
The study of utilizing arcana to alter the pneumaic nexus, the seat of human conciousness. Banned everywhere, save for the realms of the Uana. Archaically called Pneumancy.
===Geomancy===
The study of utilizing arcana to manipulate earth, the landscape, and most broadly the climate.
===Golemancy===
The study of utilizing arcana to create machines.
===Metamancy===
The study of using the Power to manipulate itself. A precursor to Egomancy, which itself was a precursor to Neuromancy.
===Neuromancy===
The study of utilizing arcana to manipulate the nervous system. Considered outside of Inotia and Ysara to be a mere school of Biomancy.
===Pyromancy===
The study of utilizing arcana to create manipulate and generate energy directly, often for destructive purposes.
===Radiamancy===
The study of using the Power to manipulate light.
===Runescripting===
Not technically a discipline, though often treated as such. The study of engraving incantations, as runes, into various objects.
===Thanatomancy===
The study of utilizing arcana to manipulate the process of death, or dead tissue. Archaically known as Necromancy.
===Transmutation===
The study of utilizing arcana to change the nature of objects or matter. Most commonly used for replication.
=List of arcana=
{| class="wikitable sortable"
! Arcana !! Script !! First mention
|-
| Life Slaying || "...𒋤𒋛𒄭𒂗𒌷𒈿𒇲𒄴!” || 2 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/435882/002-mankinds-shining-future]
|-
| Entropy Denying || "...(𒌍𒌷𒀭)(𒌍𒁁𒀭)𒅥𒌈𒆜𒈣𒂠, 𒋢𒀀𒅆𒌫𒃶,𒈬𒊹." || 5 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/442370/005-mankinds-shining-future]
|-
| Matter Suspending || || 5 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/442370/005-mankinds-shining-future]
|-
| Mass Nullifying || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Friction Denying || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Pressure Manipulating || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Flesh Animating || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Pressure Denying || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| World Bending || "...𒉎𒁁𒅈𒆜𒆪𒊓𒆤𒂍,𒋫𒇲𒇻𒀀𒅋𒌫𒍑,𒍝𒍝𒍝,𒅥𒁲𒀩𒌋,𒌦𒊹" || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Negenthropic Resuscitating || || 10 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/456544/010-pilgrimage-to-the-deep]
|-
| Anomaly Divining || "...𒈣𒄀𒌈𒀭𒊍. (𒌍𒍣𒍥𒊒𒊬𒉌𒌫𒐼). 𒄭𒌋𒌋𒌋𒌋, 𒊹..." || 12 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/461381/012-pilgrimage-to-the-deep]
|-
| Time Inferring || || 12 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/461381/012-pilgrimage-to-the-deep]
|-
| Planar Cutting || || 13 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/464907/013-everblossom]
|-
| Anatomy Beguiling || "...𒊬𒃶𒋾𒄿𒄿,𒀀𒄀...." "...𒀭𒂗𒊬𒃶𒋾𒄿𒄿,𒀀𒄀...." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Matter Shifting || ".... 𒄭𒅗𒈣𒈣𒁹𒁺...." "....𒉈𒆠𒆷𒉌𒍣, 𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Matter Annihilating || "....𒉈𒆠𒍥𒆤, 𒀉𒌍𒌍𒀭𒌓. 𒊹. || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Air Thrusting || "...𒁺𒂷𒉘𒄴, 𒊌𒀾𒅇𒄿, 𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Motion Beguiling || "...𒄴𒄠/𒂔𒄴𒋤𒅆𒍣𒃶𒄖𒐊𒐊. 𒂵𒀀𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Light Warping || " ...𒀀𒊌𒋛𒊬𒆕𒆠𒄩, 𒌈𒀊𒂠𒄭, 𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Death Sensing || "...𒍣𒍣𒁺𒋼𒉌𒌈𒀭𒋫𒂊𒌍𒁹𒐊𒐊𒐊𒊹!" || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| World Deafening || "...𒀉𒈾𒄿𒄿, 𒄷𒈾𒀀𒇉𒅋𒀝𒅈𒋜𒆕𒊹. || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Entropy Accelerating || "....𒋜,𒌅𒋫,𒅥𒌈𒆜𒈣𒂠, 𒋢𒀀𒅆𒌫𒃶,𒈬𒊹!" || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Entropy Reversing || "...𒆠𒈪,𒌷𒌷,𒀭𒊩𒌆𒅅,𒋢𒀀𒅆𒌫𒃶,𒈬,𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Senolyte Slaying || || 19 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]
|-
| Anatomy-Motion-Neurology Beguiling || "...𒊬𒃶𒋾𒄴𒄠/𒂔𒄴𒋤𒅆𒍣𒃶𒄖𒐊𒐊,𒄀𒈣𒊑𒅘..." || 20 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/528905/020-the-quest-unrelenting]
|-
| Vitality Percieving || || 20 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/528905/020-the-quest-unrelenting]
|-
| Form Levitating || || 24 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/569067/024-in-fading-image]
|-
| Form Chronicling || " ...𒈪𒊑𒉌𒈬,𒉘𒄴𒌓𒐊𒐊𒐊𒐊, 𒅎 𒍥𒁍𒊹." || 24 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/569067/024-in-fading-image]
|-
| Time Reversing || || 25 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/570921/025-in-fading-image]
|-
| Hive Conceptualizing || "...𒊌𒅎𒀉𒌫𒀊, 𒀭𒀉𒃶𒐊𒐊𒄀𒁍𒊹." || 26 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image]
|-
| Matter Unfurling || "...𒅆𒅆𒊑𒃶𒈿,𒌍𒌍,𒀸𒍣𒊺𒄷𒊹." || 26 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image]
|-
| Impulse Transmitting || || 36 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/640735/036-profane-ambition]
|-
| Neurology Beguiling || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Time Stopping || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Matter Repulsing || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Anomaly Denying || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Object Manipulating || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Biomatter Warping || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Life Sensing || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Iron Toning || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Flame Summoning || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Flesh Weaving || || 43 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/668921/043-the-chosen-children]
|-
| Energy Nullifying Projecting || "...𒁽𒅅𒈪𒈪𒀩𒀖𒂊, 𒄿𒄿𒄿𒂷𒌍𒀾𒄷𒌫𒄀𒊹.𒁺." || 49 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/696447/049-the-die-falls]
|-
| Matter Replicating || "𒈪𒊬𒄴𒌔𒁺𒄀𒈬𒉺, 𒌷𒊓𒊒𒄷𒍣𒆭𒌍𒀸𒄿𒄿𒊹." || 51 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/704282/051-the-die-falls]
|-
| Moment Emulating || || 52 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/708322/052-the-die-falls]
|-
| Energy Nullifying || || 54 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/716832/054-the-die-falls]
|-
| Negentropic Interfacing || || 68 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/788908/068-power-of-the-gods]
|-
| Phantasm Projecting || || 77 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/837064/077-justice-and-kindness]
|-
| Sound Echoing || || 79 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/846869/079-justice-and-kindness]
|-
| Matter Refracting || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Neuromagnetic Shielding || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Particle Striking || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| The Sun Crown || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Matter Unbinding || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Sensory Transmitting || || 86 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/896019/086-split-body]
|-
| Matter Mapping || || 91 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/928201/091-split-body]
|-
| Nerve Depressing || || 93 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/942973/093-everyone-dies]
|-
| Matter Sensing || || 107 [https://sekhmet.fun/search?q=matter+sensing]
|-
| Energy Piercing || || 108 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1085185/108-until-nothing-remains]
|-
| Cell Discerning || || 112 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1127003/112-until-nothing-remains]
|-
| Lethe Flowing || || 114 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1156590/114-until-nothing-remains]
|-
| Matter Gathering || || 117 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1222171/117-until-nothing-remains]
|-
| Matter Carving || || 122 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1294122/122-utsushikome-and-the-demon]
|-
| Time Decelerating || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Matter Liquefying || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Wind Striking || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Air Compressing || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Voice Carrying || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Biochemical Trancing || || 124 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1320883/124-utsushikome-and-the-demon]
|-
| Time Slowing || || 124 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1320883/124-utsushikome-and-the-demon]
|-
| Bacteria Springing || || 124 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1320883/124-utsushikome-and-the-demon]
|-
| Matter Solidifying || || 129 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1369743/129-got-away-with-it]
|-
| Object Replicating || || 129 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1369743/129-got-away-with-it]
|-
| Pattern Replicating || || 129 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1369743/129-got-away-with-it]
|}
f6b8b28192041d5471965cca1fc24e97e4d166e2
117
116
2023-12-19T18:35:07Z
Systemzero
2
wikitext
text/x-wiki
'''Arcana''' is a power created as a tool by the [[Ironworkers]] to assist in rebuilding the world. Sometimes referred to simply as the Power. Arcana can also refer to individual incantations, spells or techniques employing the power. An object utilising the Power or treated by it is referred to as a Artifice. Practitioners of the Power are called [[Arcanists|arcanists]]. Being an arcanist requires skill, training and, in most cases, an induction procedure.
== Arcane resistances ==
The Ironworkers designed the Power to resist violent applications against human beings.<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom 017: Everblossom (𒐃)]</ref> Unable to devise a single test to reliably identify humans, they settled upon three strict tests for which only one needs to be passed.
Disabling resistances is a common strategy in arcanic combat. Lacking the resistances also makes direct arcane medical intervention possible.
Resistances are recorded on documentation as AMN, with missing resistances omitted and compromised resistances indicated with a parenthesis.
=== Anatomical test ===
''Is the target shaped like a person, externally and, to a lesser extent, internally?''
Can be failed through having missing or damaged limbs and organs, or unusual proportions.
=== Motion test ===
''Are the fluids and soft tissue of the target moving like that of a person?''
Typically failed by those with circulatory conditions or those born in the Lower Planes.
=== Neurological test ===
Least likely to fail. Those with dementia, severe head wounds, and rare developmental disorders tend to misidentified.
==Disciplines and Schools==
Due to its complexity, arcanists are separated into disciplines, which are in turn divided into schools, though it should be noted that these categories are social constructs with no inherent value.
===Aetheromancy===
The study of utilizing arcana to manipulate space.
===Alchemy===
The study of utilizing arcana to create novel elements and substances, traditionally in medicine.
===Anima Scripting===
The study of utilizing arcana to manipulate the anima script, a biopolymer which determines the development of organisms. Because the subject of the discipline is proto-life rather than life outright, it is technically not a school of Biomancy, though this is the subject of some dispute within the academic community.
===Biomancy===
The study of utilizing arcana to manipulate biology.
===Chronomancy===
The study of utilizing arcana to manipulate time.
===Divination===
The study of utilizing arcana to assess information and predict events.
===Egomancy===
The study of utilizing arcana to alter the pneumaic nexus, the seat of human conciousness. Banned everywhere, save for the realms of the Uana. Archaically called Pneumancy.
===Geomancy===
The study of utilizing arcana to manipulate earth, the landscape, and most broadly the climate.
===Golemancy===
The study of utilizing arcana to create machines.
===Metamancy===
The study of using the Power to manipulate itself. A precursor to Egomancy, which itself was a precursor to Neuromancy.
===Neuromancy===
The study of utilizing arcana to manipulate the nervous system. Considered outside of Inotia and Ysara to be a mere school of Biomancy.
===Pyromancy===
The study of utilizing arcana to create manipulate and generate energy directly, often for destructive purposes.
===Radiamancy===
The study of using the Power to manipulate light.
===Runescripting===
Not technically a discipline, though often treated as such. The study of engraving incantations, as runes, into various objects.
===Thanatomancy===
The study of utilizing arcana to manipulate the process of death, or dead tissue. Archaically known as Necromancy.
===Transmutation===
The study of utilizing arcana to change the nature of objects or matter. Most commonly used for replication.
=List of arcana=
{| class="wikitable sortable"
! Arcana !! Script !! First mention
|-
| Life Slaying || "...𒋤𒋛𒄭𒂗𒌷𒈿𒇲𒄴!” || 2 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/435882/002-mankinds-shining-future]
|-
| Entropy Denying || "...(𒌍𒌷𒀭)(𒌍𒁁𒀭)𒅥𒌈𒆜𒈣𒂠, 𒋢𒀀𒅆𒌫𒃶,𒈬𒊹." || 5 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/442370/005-mankinds-shining-future]
|-
| Matter Suspending || || 5 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/442370/005-mankinds-shining-future]
|-
| Mass Nullifying || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Friction Denying || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Pressure Manipulating || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Flesh Animating || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Pressure Denying || || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| World Bending || "...𒉎𒁁𒅈𒆜𒆪𒊓𒆤𒂍,𒋫𒇲𒇻𒀀𒅋𒌫𒍑,𒍝𒍝𒍝,𒅥𒁲𒀩𒌋,𒌦𒊹" || 8 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/449700/008-pilgrimage-to-the-deep]
|-
| Negenthropic Resuscitating || || 10 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/456544/010-pilgrimage-to-the-deep]
|-
| Anomaly Divining || "...𒈣𒄀𒌈𒀭𒊍. (𒌍𒍣𒍥𒊒𒊬𒉌𒌫𒐼). 𒄭𒌋𒌋𒌋𒌋, 𒊹..." || 12 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/461381/012-pilgrimage-to-the-deep]
|-
| Time Inferring || || 12 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/461381/012-pilgrimage-to-the-deep]
|-
| Planar Cutting || || 13 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/464907/013-everblossom]
|-
| Anatomy Beguiling || "...𒊬𒃶𒋾𒄿𒄿,𒀀𒄀...." "...𒀭𒂗𒊬𒃶𒋾𒄿𒄿,𒀀𒄀...." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Matter Shifting || ".... 𒄭𒅗𒈣𒈣𒁹𒁺...." "....𒉈𒆠𒆷𒉌𒍣, 𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Matter Annihilating || "....𒉈𒆠𒍥𒆤, 𒀉𒌍𒌍𒀭𒌓. 𒊹. || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Air Thrusting || "...𒁺𒂷𒉘𒄴, 𒊌𒀾𒅇𒄿, 𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Motion Beguiling || "...𒄴𒄠/𒂔𒄴𒋤𒅆𒍣𒃶𒄖𒐊𒐊. 𒂵𒀀𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Light Warping || " ...𒀀𒊌𒋛𒊬𒆕𒆠𒄩, 𒌈𒀊𒂠𒄭, 𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Death Sensing || "...𒍣𒍣𒁺𒋼𒉌𒌈𒀭𒋫𒂊𒌍𒁹𒐊𒐊𒐊𒊹!" || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| World Deafening || "...𒀉𒈾𒄿𒄿, 𒄷𒈾𒀀𒇉𒅋𒀝𒅈𒋜𒆕𒊹. || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Entropy Accelerating || "....𒋜,𒌅𒋫,𒅥𒌈𒆜𒈣𒂠, 𒋢𒀀𒅆𒌫𒃶,𒈬𒊹!" || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Entropy Reversing || "...𒆠𒈪,𒌷𒌷,𒀭𒊩𒌆𒅅,𒋢𒀀𒅆𒌫𒃶,𒈬,𒊹." || 17 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/475988/017-everblossom]
|-
| Senolyte Slaying || || 19 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/515273/019-the-quest-unrelenting]
|-
| Anatomy-Motion-Neurology Beguiling || "...𒊬𒃶𒋾𒄴𒄠/𒂔𒄴𒋤𒅆𒍣𒃶𒄖𒐊𒐊,𒄀𒈣𒊑𒅘..." || 20 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/528905/020-the-quest-unrelenting]
|-
| Vitality Percieving || || 20 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/528905/020-the-quest-unrelenting]
|-
| Form Levitating || || 24 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/569067/024-in-fading-image]
|-
| Form Chronicling || " ...𒈪𒊑𒉌𒈬,𒉘𒄴𒌓𒐊𒐊𒐊𒐊, 𒅎 𒍥𒁍𒊹." || 24 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/569067/024-in-fading-image]
|-
| Time Reversing || || 25 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/570921/025-in-fading-image]
|-
| Hive Conceptualizing || "...𒊌𒅎𒀉𒌫𒀊, 𒀭𒀉𒃶𒐊𒐊𒄀𒁍𒊹." || 26 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image]
|-
| Matter Unfurling || "...𒅆𒅆𒊑𒃶𒈿,𒌍𒌍,𒀸𒍣𒊺𒄷𒊹." || 26 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/575766/026-in-fading-image]
|-
| Impulse Transmitting || || 36 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/640735/036-profane-ambition]
|-
| Neurology Beguiling || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Time Stopping || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Matter Repulsing || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Anomaly Denying || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Object Manipulating || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Biomatter Warping || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Life Sensing || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Iron Toning || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Flame Summoning || || 40 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/656840/040-the-chosen-children]
|-
| Flesh Weaving || || 43 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/668921/043-the-chosen-children]
|-
| Energy Nullifying Projecting || "...𒁽𒅅𒈪𒈪𒀩𒀖𒂊, 𒄿𒄿𒄿𒂷𒌍𒀾𒄷𒌫𒄀𒊹.𒁺." || 49 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/696447/049-the-die-falls]
|-
| Matter Replicating || "𒈪𒊬𒄴𒌔𒁺𒄀𒈬𒉺, 𒌷𒊓𒊒𒄷𒍣𒆭𒌍𒀸𒄿𒄿𒊹." || 51 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/704282/051-the-die-falls]
|-
| Moment Emulating || || 52 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/708322/052-the-die-falls]
|-
| Energy Nullifying || || 54 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/716832/054-the-die-falls]
|-
| Negentropic Interfacing || || 68 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/788908/068-power-of-the-gods]
|-
| Phantasm Projecting || || 77 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/837064/077-justice-and-kindness]
|-
| Sound Echoing || || 79 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/846869/079-justice-and-kindness]
|-
| Matter Refracting || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Neuromagnetic Shielding || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Particle Striking || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| The Sun Crown || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Matter Unbinding || || 83 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/870050/083-split-body]
|-
| Sensory Transmitting || || 86 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/896019/086-split-body]
|-
| Matter Mapping || || 91 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/928201/091-split-body]
|-
| Nerve Depressing || || 93 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/942973/093-everyone-dies]
|-
| Matter Sensing || || 107 [https://sekhmet.fun/search?q=matter+sensing]
|-
| Energy Piercing || || 108 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1085185/108-until-nothing-remains]
|-
| Cell Discerning || || 112 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1127003/112-until-nothing-remains]
|-
| Lethe Flowing || || 114 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1156590/114-until-nothing-remains]
|-
| Matter Gathering || || 117 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1222171/117-until-nothing-remains]
|-
| Matter Carving || || 122 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1294122/122-utsushikome-and-the-demon]
|-
| Time Decelerating || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Matter Liquefying || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Wind Striking || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Air Compressing || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Voice Carrying || || 123 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1308296/123-utsushikome-and-the-demon]
|-
| Biochemical Trancing || || 124 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1320883/124-utsushikome-and-the-demon]
|-
| Time Slowing || || 124 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1320883/124-utsushikome-and-the-demon]
|-
| Bacteria Springing || || 124 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1320883/124-utsushikome-and-the-demon]
|-
| Matter Solidifying || || 129 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1369743/129-got-away-with-it]
|-
| Object Replicating || || 129 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1369743/129-got-away-with-it]
|-
| Pattern Replicating || || 129 [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1369743/129-got-away-with-it]
|}
e3a2705cc5fc6cbb2c33c2757c78f83f77edb5dd
Module:Hatnote/styles.css
828
27
118
59
2023-12-19T18:39:26Z
Systemzero
2
Systemzero changed the content model of the page [[Module:Hatnote/styles.css]] from "plain text" to "CSS"
css
text/css
/* {{pp|small=y}} */
.hatnote {
font-style: italic;
}
/* Limit structure CSS to divs because of [[Module:Hatnote inline]] */
div.hatnote {
/* @noflip */
padding-left: 1.6em;
margin-bottom: 0.5em;
}
.hatnote i {
font-style: normal;
}
/* The templatestyles element inserts a link element before hatnotes.
* TODO: Remove link if/when WMF resolves T200206 */
.hatnote + link + .hatnote {
margin-top: -0.5em;
}
44680ffd6e888866df2cdfa0341af9c7b97da94c
Wen
0
45
119
2023-12-21T00:59:45Z
Scarletsannasky
9
i hope i have the info right
wikitext
text/x-wiki
'''Wen''' was a person from before the collapse with some relationship to [[Utsushikome's grandfather|⬛️⬛️⬛️⬛️⬛️ of Fusai]]'s pre-collapse identity. [[Samium|Samium of Ur-Ysar]] told Su that she was his daughter, for unknown reasons Su now claims this was false. [[Utsushikome of Fusai]]'s anima script and physical appearance was modelled on hers. Utsushikome's grandfather chose to sacrifice a portrait of her in the Order's [[Induction chamber]]. Samium and Autonoe found that retrieving her pneuma was impossible, and chose to deceive Utsushikome's grandfather by placing someone with Pneumaic Hyperadaptivity Syndrome in Utsushikome's body instead of Wen.
2cc644e1c44ac02672f8d4530b25521647cd8ffd
120
119
2023-12-21T01:01:11Z
Scarletsannasky
9
wikitext
text/x-wiki
'''Wen''' was a person from before the collapse with some relationship to [[⬛️⬛️⬛️⬛️⬛️ of Fusai|Utsushikome's grandfather]]'s pre-collapse identity. [[Samium of Ur-Ysar|Samium]] told Su that she was his daughter, for unknown reasons Su now claims this was false. [[Utsushikome of Fusai]]'s anima script and physical appearance was modelled on hers. Utsushikome's grandfather chose to sacrifice a portrait of her in the Order's [[Induction chamber]]. Samium and [[Autonoe of Koranthia|Autonoe]] found that retrieving her pneuma was impossible, and chose to deceive Utsushikome's grandfather by placing someone with Pneumaic Hyperadaptivity Syndrome in Utsushikome's body instead of Wen.
991542867e867b5209ed40efce35a41e145c264f
122
120
2023-12-21T01:32:44Z
Scarletsannasky
9
wikitext
text/x-wiki
'''Wen''' was a person from before the [[Collapse]] with some relationship to [[⬛️⬛️⬛️⬛️⬛️ of Fusai|Utsushikome's grandfather]]'s pre-collapse identity. [[Samium of Ur-Ysar|Samium]] told Su that she was his daughter, for unknown reasons Su now claims this was false. [[Utsushikome of Fusai]]'s anima script and physical appearance was modelled on hers. Utsushikome's grandfather chose to sacrifice a portrait of her in the Order's [[Induction chamber]]. Samium and [[Autonoe of Koranthia|Autonoe]] found that retrieving her pneuma was impossible, and chose to deceive Utsushikome's grandfather by placing someone with Pneumaic Hyperadaptivity Syndrome in Utsushikome's body instead of Wen.
fe02265ea39802eebb7d2f7ac44620ebc8d0cb39
Iron Princes
0
46
121
2023-12-21T01:30:16Z
Scarletsannasky
9
Created page with "The '''Iron Princes''' were the ruling class of the late Imperial Era. Possessing trillions of times more wealth than the average person, once the technology became available they abandoned their physical bodies to live as vast intelligences powered by the Sun. They controlled both those living in physical reality and subjects uploaded to their artificial reality until they were destroyed by the [[Collapse]]. Although their technology is no longer viable without [[Iron]]..."
wikitext
text/x-wiki
The '''Iron Princes''' were the ruling class of the late Imperial Era. Possessing trillions of times more wealth than the average person, once the technology became available they abandoned their physical bodies to live as vast intelligences powered by the Sun. They controlled both those living in physical reality and subjects uploaded to their artificial reality until they were destroyed by the [[Collapse]]. Although their technology is no longer viable without [[Iron]], the Covenant outlaws it. Despite [[Neferuaten of Amat|Neferuaten]]'s claims that the [[Order of the Universal Panacea|Order]] is faithful to the ideals of the Covenant, it possesses copies of their documents. According to rumor, these copies were transcribed from memory by members of the [[Uana party]].<ref>[https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere/chapter/1115399/111-until-nothing-remains 111: Until Nothing Remains (𒐄)]</ref>
cff0bf8cb986af46e780c15932abede5cd2fc01c
Main Page
0
1
123
12
2023-12-21T18:21:14Z
Systemzero
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to {{SITENAME}}! ==
This wiki is about [https://www.royalroad.com/fiction/28806/the-flower-that-bloomed-nowhere The Flower That Bloomed Nowhere], a webnovel by Lurina.<br>
This wiki contains [[Special:Statistics|{{NUMBEROFARTICLES}}]] [[Special:AllPages|articles]].
While this wiki is under construction, we advise first time readers to be aware that many pages will contain unmarked spoilers.
45961eeaf76b766034d97ceaf096fcd490b8954b